0
点赞
收藏
分享

微信扫一扫

log

参考文献:​​http://wjdadi-gmail-com.iteye.com/blog/1984354​​

logging.basicConfig函数各参数:

​filename: 指定日志文件名 ​

​filemode: 和file函数意义相同,指定日志文件的打开模式,'w'或'a' ​

​format: 指定输出的格式和内容,format可以输出很多有用信息,如上例所示:  %(levelno)s: 打印日志级别的数值  %(levelname)s: 打印日志级别名称  %(pathname)s: 打印当前执行程序的路径,其实就是sys.argv[0]  %(filename)s: 打印当前执行程序名  %(funcName)s: 打印日志的当前函数  %(lineno)d: 打印日志的当前行号  %(asctime)s: 打印日志的时间  %(thread)d: 打印线程ID  %(threadName)s: 打印线程名称  %(process)d: 打印进程ID  %(message)s: 打印日志信息 ​

​datefmt: 指定时间格式,同time.strftime() ​

​level: 设置日志级别,默认为logging.WARNING ​

​stream: 指定将日志的输出流,可以指定输出到sys.stderr,sys.stdout或者文件,默认输出到sys.stderr,当stream和filename同时指定时,stream被忽略​

日志配置,通过logging.config包进行相关处理。

   1 文件配置方式

 

    python可以通过配置文件来定义日志,配置文件的格式通过logging.config.fileConfig(此函数基于ConfigParser)来解析,[loggers] , [handlers] 和 [formatters] ,用来标识文件定义的几种类型的实体。这价格标识必须包含在配置文件中。

 

     [loggers]标识: 关键字keys后通过=号指定对应logger实体的名称,而对具体的logger实体配置就在[logger_logger实体名],如keys=root则对应详细配置在[logger_root]中。

 

                             详细配置如[logger_root] 中必须包含level和handlers,level值包含一中介绍的所以level信息;handlers包含一个或多个在[handlers]定义的值,多值用“,”分开。

 

                             还可能包括propagate和qualname,propagete项如果为1,则表示该logger必须处理它继承的父类logger的信息,如果为0则不必; qualname项表示logger的分层结构的上下文名称,应用程序中就是用这个名字结合logger实体名称来获得logger的全路径。

 

     [handlers]标识: 与[loggers]类似,如keys=hand01则具体配置在[handler_hand01]。

 

                             详细配置如[handler_hand01]中包含class,level,formatter和args等关键字。

 

                             class值表示handlers的具体类;level是handler的日志级别;formatter表示用于此handler的格式,此处如果不为空必须在[formatters]总定义,如果为空则用默认的formatter(logging._defaultFormatter);args表示handler实例化时传给handler构造函数的参数,多个参数用“()”扩起来。

 

     [formatters]标识: 同上,keys=format01则[formatter_format01]。

 

                             详细配置如[formatter_format01]中包含format,datefmt和class。

 

                             class可选,它指出了 formatter 的类名(模块名和类名通过点来分隔);format定义格式字符串,方式如四中介绍;datefmt项可以接受跟strftime()函数兼容的时间/日期格式字符串。如果为空,则默认用ISO8601格式的日期/时间格式,其格式也定义了微秒,可以用一个逗号隔开添加到上面的格式字符串之后,ISO8601格式的一个示例是 2003-01-23 00:29:50,411。

=================

 

属性名称

    格式  

                                       说明  

name

%(name)s

日志的名称

asctime

%(asctime)s

可读时间,默认格式‘2003-07-08 16:49:45,896’,逗号之后是毫秒

filename

%(filename)s

文件名,pathname的一部分

pathname

%(pathname)s

文件的全路径名称

funcName

%(funcName)s

调用日志多对应的方法名

levelname

%(levelname)s

日志的等级

levelno

%(levelno)s

数字化的日志等级

lineno

%(lineno)d

被记录日志在源码中的行数

module

%(module)s

模块名

msecs

%(msecs)d

时间中的毫秒部分

process

%(process)d

进程的ID

processName

%(processName)s

进程的名称

thread

%(thread)d

线程的ID

threadName

%(threadName)s

线程的名称

relativeCreated

%(relativeCreated)d

日志被创建的相对时间,以毫秒为单位

 

 

举报

相关推荐

0 条评论