在python中代替logging的日志系统。
但是,比以前的logging更难理解。
先前打印在屏幕上的代码和保存在日志文件中的代码:
#! /usr/神勇的大厦/env python3----coding : utf-8---- fromlogbookimportlogger,StreamHandler,timedrotatingfilehanglehandler (log_dir=OS.path.join ) ifnotOS.path.exists(log_dir ) :OS.makedirs ) log _ dir timedrotaaaaation ' '
在初始化时,必须先生成Logger实例。
user_log=logger(“user_log”) ) ) ) ) ) ) )。
如果需要打印在屏幕上,请生成要打印在屏幕上的句柄。
user _ STD _ handler=user _ STD _ handler=colorizedstderrhandler (bubble=true )
然后,将此句柄设置为日志格式:
user _ STD _ handler.formatter=user _ handler _ log _ formatter
要启用此设置,请单击,
只需声明user_log的句柄。
user_log.handlers=[]
然后加上那个就可以了
user _ log.handlers.append (user _ STD _ handler )
同样,要使日志也支持打印到文件,请再次执行上述步骤。
user _ file _ handler=timedrotatingfilehandler (
OS.path.join(OS.path.join )、(log )、(s.log )、(test_log )、(date_format=)、y%m%d )、bubbllog
user _ file _ handler.formatter=user _ handler _ log _ formatter
user _ log.handlers.append (user _ file _ handler ) )。
user_handler_log_formatter是一个日志格式函数,返回打印日志的显示方式。
整体代码如下。
#! /usr/神勇的大厦/env python3#-- * coding : utf-8-- # filename : logger.pyimportosimportlogbookfromlogbookimportlogger timedrotatingfilehandlerfromlogbook.moreimportcolorizedsed “%y-%m-%d%h3360%m3360 record, handler (3360 log=' [ { dt } ] [ { level } ] [ { filename } ] [ { func _ name } ] [ { line no } ] { msg }.formar ) #日志等级文件#文件名func_name=record.func_name, #函数名lineno=record #日志内容(return log# )打印到屏幕句柄user _ STD _ handler=colorizedstderrhandler (bubble=true ) user_STD_handler.formatter=的主项目. Exists ) log_dir ) :OS.makedirs ) log_dir ) #的文件句柄user _ file _ handler=timedrotatingfilehandler (oom ) ' %s.log' % 'test_log ' )打印bubble=true (user _ file _ handler.formatter=user _ handler _ log _ formattter ) 用户代码logger日志65 3360 logbook.set _ datetime _ format (local ) user _ log.handlers=[ ] user _ log.handlers.appenen /usr/神勇的大厦/evn python3--*-coding : utf-8-- # filename : test _ lo oger.pyimportosfromloggerimportustuse [ 2017-08-2619336010336010.226902 ] [ info ] [ test _ logger.py ] [ module ] [8] mytest。