python日志配置文件解释_python 之 logger日志 字典配置文件

importosimport logging.config #不能只导入logging

BASE_DIR=os.path.dirname(os.path.dirname(__file__))#DB_PATH=os.path.join(BASE_DIR,'db')#DB_PATH=r'%s\db' %BASE_DIR

#定义日志文件的路径

LOG_PATH=os.path.join(BASE_DIR,'log','access.log')#LOG_PATH=r'%s\log\access.log' %BASE_DIR#BOSS_LOG_PATH=r'%s\log\boss.log' %BASE_DIR

#定义三种日志输出格式 开始

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

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

#定义日志输出格式 结束

logfile_dir= os.path.dirname(os.path.abspath(__file__)) #log文件的目录

logfile_name = 'all2.log' #log文件名

#如果不存在定义的日志目录就创建一个

if notos.path.isdir(logfile_dir):

os.mkdir(logfile_dir)#log文件的全路径

logfile_path =os.path.join(logfile_dir, logfile_name)#log配置字典

LOGGING_DIC ={'version': 1,#禁用已经存在的logger实例

'disable_existing_loggers': False,#定义日志 格式化的 工具

'formatters': {'standard': {'format': standard_format

},'simple': {'format': simple_format

},'id_simple': {'format': id_simple_format

},

},#过滤

'filters': {}, #jango此处不同

'handlers': {#打印到终端的日志

'stream': {'level': 'DEBUG','class': 'logging.StreamHandler', #打印到屏幕

'formatter': 'simple'},#打印到文件的日志,收集info及以上的日志

'access': {'level': 'DEBUG','class': 'logging.handlers.RotatingFileHandler', #保存到文件

'formatter': 'standard','filename': logfile_path, #日志文件路径

'maxBytes': 1024*1024*5, #日志大小 5M

'backupCount': 5,'encoding': 'utf-8', #日志文件的编码,再也不用担心中文log乱码了

},#打印到文件的日志,收集error及以上的日志

'boss': {'level': 'ERROR','class': 'logging.handlers.RotatingFileHandler', #保存到文件

'formatter': 'id_simple','filename': BOSS_LOG_PATH, #日志文件

#'maxBytes': 1024*1024*5, # 日志大小 5M

'maxBytes': 300, #日志大小 5M

'backupCount': 5,'encoding': 'utf-8', #日志文件的编码,再也不用担心中文log乱码了

},

},#logger实例

'loggers': {#默认的logger应用如下配置

'': {'handlers': ['stream', 'access','boss'], #这里把上面定义的两个handler都加上,即log数据既写入文件又打印到屏幕

'level': 'DEBUG','propagate': True, #向上(更高level的logger)传递

},#logging.getLogger(__name__)拿到的logger配置

#这样我们再取logger对象时logging.getLogger(__name__),不同的文件__name__不同,这保证了打印日志时标识信息不同,

#但是拿着该名字去loggers里找key名时却发现找不到,于是默认使用key=''的配置

},

}defload_my_logging_cfg():

logging.config.dictConfig(LOGGING_DIC)#导入上面定义的logging配置

logger = logging.getLogger(__name__) #生成一个log实例

logger.info('It works!') #记录该文件的运行状态

if __name__ == '__main__':

load_my_logging_cfg()#从common.py引用,要传入name,且有返回log实例#import logging.config#import logging#from conf import setting

#def get_logger(name):

#logging.config.dictConfig(setting.LOGGING_DIC) # 导入上面定义的logging配置

#l1=logging.getLogger(name)

#return l1

#src.py#logger1 = common.get_logger('查看余额')#logger1.debug( dic_user_check['money'] )

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/266059.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最常用计算机信息呼唤标准代码,计算机考试题

1.Powerpoint中,在幻灯片浏览视图下,按住Ctel键并拖动某一幻灯片,可以完成(D)A. 移动幻灯片B. 选定幻灯片C. 删除幻灯片D. 复制幻灯片2.在Powerpoint中,为所有幻灯片设置统一的、特有的外观风格,应运用(A)A. 母版 B. 自…

awk一些很恐怖的特性

使用也可以产生值 echo "" | awk END{a[1]1;x a[2];print length(a);print a[3];print length(a)} 打印结果是:2 空行 3 这个awk的数组元素居然是3!!就是说使用数组也是定义数组!!!这很恐怖&…

安卓APP_ 控件(5)—— ProgressBar

摘自:安卓APP_ 控件(5)—— ProgressBar 作者:丶PURSUING 发布时间: 2021-03-31 13:03:07 网址:https://blog.csdn.net/weixin_44742824/article/details/115313496 控件ProgressBar就是对进度条的设定&…

sql 写query_为什么需要动态SQL

为什么需要动态SQL在使用 EF或者写 SQL语句时,查询条件往往是这样一种非常常见的逻辑:如果客户填了查询信息,则查询该条件;如果客户没填,则返回所有数据。我常常看到很多人解决这类问题时使用了错误的静态 SQL的解决办…

湖南大学计算机学院张柏杨,缪力-湖大信息科学与工程学院

[1]Li-Hui XIANG, Li Miao,Da-Fang ZHANG, Feng-Ping CHEN. Benefit of Compression in Hadoop: A CaseStudy of Improving IO Performance on Hadoop. 2014 IEEE International Conferenceon Industrial Engineering and Information Technology (EI/ISTP)[2]向丽辉…

AMBA总线协议AHB、APB

一、什么是AMBA总线 AMBA总线规范是ARM公司提出的总线规范,被大多数SoC设计采用,它规定了AHB (Advanced High-performance Bus)、ASB (Advanced System Bus)、APB (Advanced Peripheral Bus)。AHB用于高性能、高时钟频率的系统结构,典型的应用…

CentOS安装SVN服务器并配置HTTPS连接

在CentOS6.3 64位机器上配置SVN服务器,并设置只允许HTTPS连接,可以配置多个repos源,每个源都拥有自己的组和成员,用于权限控制。安装相关软件Apacheyum install httpd httpd-devel Subversionyum install mod_dav_svn subversionS…

安卓APP_ 控件(6)—— Notification通知

摘自:安卓APP_ 控件(6)—— Notification通知 作者:丶PURSUING 发布时间: 2021-04-02 00:30:14 网址:https://blog.csdn.net/weixin_44742824/article/details/115382674 Notification通知的使用 一、创建一…

安卓APP_ 控件(7)——Toolbar栏目样式

摘自:安卓APP_ 控件(7)——Toolbar栏目样式 作者:丶PURSUING 发布时间: 2021-04-02 15:42:07 网址:https://blog.csdn.net/weixin_44742824/article/details/115395997 Toolbar栏目样式 什么是Toolbar?设置…

电大计算机本科离散数学考试题,国开(中央电大)本科《离散数学(本)》网上形考(任务一至三)试题及答案...

《国开(中央电大)本科《离散数学(本)》网上形考(任务一至三)试题及答案》由会员分享,可在线阅读,更多相关《国开(中央电大)本科《离散数学(本)》网上形考(任务一至三)试题及答案(10页珍藏版)》请在装配图网上搜索。1、国开(中央电大)本科离散数学(本)网上…

luogu4267 TamingtheHerd (dp)

设f[i][j]为让前i天发生j次暴动需要改变的最少的值 则f[i][j]min{f[k][j-1](x[k1]!0)(x[k2]!1)...(x[i]!(i-k-1))} $O(n^3)$直接做就好了 1 #include<bits/stdc.h>2 #define pa pair<int,int>3 #define ll long long4 using namespace std;5 const int maxn105;6 7…

Gartner:2013年SIEM市场分析(MQ)

2013年5月7日&#xff0c;Gartner一年一度的SIEM magic quadrant报告出炉了。如下图&#xff1a;对比一下去年的MQ矩阵&#xff1a;简言之&#xff0c;上榜厂商减少到16个&#xff0c;Q1Labs在三强竞争中稍占上风&#xff0c;Arcsight有所退步&#xff0c;Splunk终于跻身第一阵…

python sqlite数据库_用Python进行SQLite数据库操作

简单的介绍SQLite数据库是一款非常小巧的嵌入式开源数据库软件&#xff0c;也就是说没有独立的维护进程&#xff0c;所有的维护都来自于程序本身。它是遵守ACID的关联式数据库管理系统&#xff0c;它的设计目标是嵌入式的&#xff0c;而且目前已经在很多嵌入式产品中使用了它&a…

dijstra算法

无向图、赋权有向图 的最短路径转载于:https://www.cnblogs.com/xiaoxuesheng993/p/9632555.html

北林计算机考研真题答案,真题解析|『北林』2020年考研初试真题

原标题&#xff1a;真题解析&#xff5c;『北林』2020年考研初试真题真题解析&#xff5c;『北林』2020年考研初试真题前言从今年的考试题型来看未做改变&#xff0c;(选择、名词解释、简答、论述)但分数分布略有更改。从考试内容来看&#xff0c;基本持平于去年的难易程度&…

安卓APP_ 控件(8)—— AlertDialog

摘自&#xff1a;安卓APP_ 控件&#xff08;8&#xff09;—— AlertDialog 作者&#xff1a;丶PURSUING 发布时间&#xff1a; 2021-04-02 18:13:20 网址&#xff1a;https://blog.csdn.net/weixin_44742824/article/details/115400659 显示对话框&#xff0c;效果如下图&…

iBatis 到 MyBatis区别

简介&#xff1a; 本文主要讲述了 iBatis 2.x 和 MyBatis 3.0.x 的区别&#xff0c;以及从 iBatis 向 MyBatis 移植时需要注意的地方。通过对本文的学习&#xff0c;读者基本能够了解 MyBatis 有哪些方面的改进&#xff0c;并能够顺利使用 MyBatis 进行开发。本文更适合有 iBat…

python开源库生成式对抗网络_Python:使用Tensorflow开发一维生成对抗网络

生成式对抗网络是一种用于训练生成器模型的深度学习体系结构。GAN由两个模型组成&#xff0c;一个称为生成器(Generator)&#xff0c;另一个称为判别器(Discriminator)。顾名思义&#xff0c;生成器生成新样本&#xff0c;判别器负责对生成的样本进行真伪分类。GAN实际如何运作…

Java执行存储过程

1、JDBC调用存储过程: CallableStatement /** *p是要调用的存储过程的名字&#xff0c;存储过程的4个参数&#xff0c;用4个&#xff1f;号占位符代替 *其余地方写法固定 */ CallableStatement cstmt conn.prepareCall("{call p(?,?,?,?)}"); /** *告诉JDBC&…

2014 计算机网络 考研真题,2014计算机网络考研试题过关必练

2009全国硕士研究生入学考试过关必练_网络试题一&#xff0e; 通过选择题过关必练1. 常用的数据传输速率单位有Kbps、Mbps、Gbps与Tbps&#xff0c;1Mbps等于A. 1103bps B. 1106bps C. 1109bps D. 11012bps2. 常用的数据传输速率单位有Kbps、Mbps、Gbps&#xff0c;如果局域网的…