日志文件怎么玩了,解一下Python中的日志模块
<人力资源/>1,如何控制日志格式
导入模块:
<代码>导入日志记录 进口操作系统 导入系统 BASE_DIR=os.path.dirname (os.path.dirname (os.path.abspath (__file__))) 代码>
basicConfig定义日志格式:
<代码> #格式控制输出日志的格式,levelname和消息是固定写法,levelname是等级名称,消息是输出字符,水平控制输出的等级 logging.basicConfig(格式=' % (levelname)年代:%(消息)年代,水平=logging.DEBUG) #注意:每个文件的日志格式只能配置一次,即一个py文件里只能出现一次,而且只允许放在执行语句之前。 词=癏ello, world !” #字符串的格式输出,% s引用单词字符串 日志记录。警告(' % s我爱python !”,词) # asctime是当前时间,默认水平是logging.warning logging.basicConfig(格式=' % (asctime) %(消息)年代”) # lineno代表代码行数 logging.basicConfig(=日志级别。调试格式=' % (lineno) d - %(文件名)s - % (asctime) s - %(名字)s - % (levelname) s - %(消息)年代)代码>
2,必须的控制台和文件对象
<代码> def log_log (logger_name=岸允?log_file=os.path。加入(BASE_DIR‘日志’,‘log.log’),级别=logging.DEBUG): “生成指定日志格式的日志对象的 #日志对象,需要个日志名儿 记录器=logging.getLogger (logger_name) logger.setLevel(高度) #控制台对象 ch=logging.StreamHandler () ch.setLevel(高度) #文件对象 跳频=日志记录。文件句柄(文件名=log_file编码=皍tf - 8”) #创建格式化程序 格式化程序=logging.Formatter (“% (asctime) %(文件名)年代(线:% (lineno) d) %(名字)s % (levelname) %(消息)年代”) #添加格式化程序 ch.setFormatter (formatter) fh.setFormatter (formatter) #把ch,跳频添加到记录器 logger.addHandler (ch) logger.addHandler(跳频) 返回日志代码>
3,完成了,测试一下
<代码> def main (): #测试 记录器=log_log () logger.debug(调试消息) logger.info(“信息消息”) 记录器。警告(“警告消息”) 记录器。错误(“错误信息”) 记录器。关键(重要信息) if __name__==癬_main__”: main() 代码>
4,禁止所有日志输出
<代码> #禁止所有日志输出 logging.disable (logging.CRITICAL) 代码>
是不是很简单!
本代码来源于51 cto课程:python全栈开发高薪就业班
引用>日志文件怎么玩了,解一下Python中的日志模块