首页 > 其他分享 >日志配置字典

日志配置字典

时间:2023-10-21 21:00:48浏览次数:27  
标签:logging log format 配置 filename 日志 level 字典

日志配置字典

"""
logging配置
"""

import os

# 1、定义三种日志输出格式,日志中可能用到的格式化串如下
# %(name)s Logger的名字
# %(levelno)s 数字形式的日志级别
# %(levelname)s 文本形式的日志级别
# %(pathname)s 调用日志输出函数的模块的完整路径名,可能没有
# %(filename)s 调用日志输出函数的模块的文件名
# %(module)s 调用日志输出函数的模块名
# %(funcName)s 调用日志输出函数的函数名
# %(lineno)d 调用日志输出函数的语句所在的代码行
# %(created)f 当前时间,用UNIX标准的表示时间的浮 点数表示
# %(relativeCreated)d 输出日志信息时的,自Logger创建以 来的毫秒数
# %(asctime)s 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
# %(thread)d 线程ID。可能没有
# %(threadName)s 线程名。可能没有
# %(process)d 进程ID。可能没有
# %(message)s用户输出的消息

# 2、强调:其中的%(name)s为getlogger时指定的名字
standard_format = '[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%				 (lineno)d]''[%(levelname)s][%(message)s]'

simple_format = '[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s'

test_format = '%(asctime)s] %(message)s'

# 3、日志配置字典
LOGGING_DIC = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'standard': {
            'format': standard_format
        },
        'simple': {
            'format': simple_format
        },
        'test': {
            'format': test_format
        },
    },
    'filters': {},
    'handlers': {
        #打印到终端的日志
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',  # 打印到屏幕
            'formatter': 'simple'
        },
        #打印到文件的日志,收集info及以上的日志
        'default': {
            'level': 'DEBUG',
            'class': 'logging.handlers.RotatingFileHandler',  # 保存到文件,日志轮转
            'formatter': 'standard',
            # 可以定制日志文件路径
            # BASE_DIR = os.path.dirname(os.path.abspath(__file__))  # log文件的目录
            # LOG_PATH = os.path.join(BASE_DIR,'a1.log')
            'filename': 'a1.log',  # 日志文件
            'maxBytes': 1024*1024*5,  # 日志大小 5M
            'backupCount': 5,
            'encoding': 'utf-8',  # 日志文件的编码,再也不用担心中文log乱码了
        },
        'other': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',  # 保存到文件
            'formatter': 'test',
            'filename': 'a2.log',
            'encoding': 'utf-8',
        },
    },
    'loggers': {
        #logging.getLogger(__name__)拿到的logger配置
        '': {
            'handlers': ['default', 'console'],  # 这里把上面定义的两个handler都加上,即log数据既写入文件又打印到屏幕
            'level': 'DEBUG', # loggers(第一层日志级别关限制)--->handlers(第二层日志级别关卡限制)
            'propagate': False,  # 默认为True,向上(更高level的logger)传递,通常设置为False即可,否则会一份日志向上层层传递
        },
        '专门的采集': {
            'handlers': ['other',],
            'level': 'DEBUG',
            'propagate': False,
        },
    },
}

标签:logging,log,format,配置,filename,日志,level,字典
From: https://www.cnblogs.com/piggthird/p/17779539.html

相关文章

  • log默认配置
    """logging配置"""#定义三种日志输出格式开始standard_format='[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d]'\'[%(levelname)s][%(message)s]'#其中name为getl......
  • uniapp环境配置
    uniapp笔记1.Uniapp-原生环境搭建[1]接口模块环境1:【安装IDEA软件】环境2:【安装maven】(1)下载并解压到非C盘目录【原因:maven配置本地仓库-企业非常大!一直在西在jar包】(2)创建一个本地仓库【步骤:在maven的根路径创建一个文件夹repo】(3)集成本地仓库路劲的配置,【作用:使你配置的本......
  • VSCode配置Clang C/C++开发环境 [+clangd代码静态检查配置]
    问题:gcc/g++是c/c++使用最广泛的编译器,也是linux默认自带的编译套件,但在vscode上,也可通过微软官方提供的C/C++插件很便捷进行c/c++代码编译调试,但是该插件的自动补全和代码提示等功能很差,经常给不出合理的候选项。另外一套C/C++代码编译套件是基于LLVM的clang/clang++编译器、ll......
  • nginx配置解决跨域访问
    场景:前后的分离项目,前端vue框架,打包后放在Tomcat里访问,端口是8080,后端服务端口8058。访问前端项目时,调用后端接口报跨域。后端环境正常访问端口8058经过nginx配置(文末具体展示)后,去除端口,如下:前端开发环境1.配置开发和生产的环境变量.env.development文件#API服务路径......
  • vscode 配置 ssh登录
    先在本地windows环境下安装好ssh,然后用ssh-keygen-trsa-C"[email protected]"生成密钥在服务器上也使用ssh-keygen-trsa-C"[email protected]"生成密钥将本地的公钥传递到服务器:scp.\[email protected]:~在.ssh文件夹创建authorized_keys:touch~/.ssh/aut......
  • 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(11) -- 下拉
    在我们开发的前端项目中,往往为了方便,都需对一些控件进行自定义的处理,以便实现快速的数据绑定以及便捷的使用,本篇随笔介绍通过抽取常见字典列表,实现通用的字典类型绑定;以及通过自定义控件的属性处理,实现系统字典内容的快捷绑定的操作。1、下拉列表的数据绑定在我们创建下拉列表的......
  • Apache APISIX 配置导出和导入操作
    ApacheAPISIX的配置信息被存储在其数据源,如etcd。您可以使用etcd的命令行工具`etcdctl`或者RESTAPI来完成配置信息的导出和导入。1.**导出配置**要导出etcd中的数据,请使用下面的命令:```bashETCDCTL_API=3etcdctlget--endpoints=<etcd_endpoint>/apisix/......
  • 服务器图形界面配置
    参考:https://www.xiexianbin.cn/linux/vnc/turbovnc/index.html一、安装TurboVNCaptupdate&&aptinstall-ylibglu1-mesa-devmesa-utilsxtermxauthx11-xkb-utilsxfonts-basexkb-datalibxtst6libxv1#安装libjpeg-turbo和turbovncexportTURBOVNC_VERSION=2.2......
  • linux日志服务器部署
    集中式日志服务器介绍如果你负责管理数台的Linux,你得登录每一台Linux后,才能阅读其中的信息!这样是不是很麻烦??那有没有什么更好的方案呢?Linux的系统日志服务,允许你把信息传递到某一台Linux的系统日志服务中;那你就可以把一台Linux作为日志服务器(LogServer),而其他的Linux......
  • linux日志管理
    一、日志服务的介绍日志介绍程序执行的时候,可以通过标准输出(stdout,StandardOutput)与标准错误输出(stderr,StandardErrorOutput)来输送信息,用户就可以了解该程序执行时发生了什么状况;可是对于在后台执行的服务器程序,或者Linux内核本身来说,就没有办法这样做了。服务与内核启......