log

Posted 我和你并没有不同

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
日志被创建的相对时间,以毫秒为单位

 

 

以上是关于log的主要内容,如果未能解决你的问题,请参考以下文章

python常用代码片段总结

前端开发常用js代码片段

vs code 自定义代码片段

sublime text 3 添加 javascript 代码片段 ( snippet )

jacript var let const 区别

ES7-Es8 js代码片段