loggong模块

Posted 爱吃西红柿的猫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了loggong模块相关的知识,希望对你有一定的参考价值。

logging模块

用于便捷记录日志且线程安全的模块

1、单文件日志

 1 import logging
 2    
 3    
 4 logging.basicConfig(filename=\'log.log\',
 5                     format=\'%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s\',
 6                     datefmt=\'%Y-%m-%d %H:%M:%S %p\',
 7                     level=10)
 8    
 9 logging.debug(\'debug\')
10 logging.info(\'info\')
11 logging.warning(\'warning\')
12 logging.error(\'error\')
13 logging.critical(\'critical\')
14 logging.log(10,\'log\')

日志等级:

1 CRITICAL = 50
2 FATAL = CRITICAL
3 ERROR = 40
4 WARNING = 30
5 WARN = WARNING
6 INFO = 20
7 DEBUG = 10
8 NOTSET = 0

注:只有【当前写等级】大于【日志等级】时,日志文件才被记录。

 

2、多文件日志

对于上述记录日志的功能,只能将日志记录在单文件中,如果想要设置多个日志文件,logging.basicConfig将无法完成,需要自定义文件和日志操作对象。

日志一:

# 定义文件
file_1_1 = logging.FileHandler(\'l1_1.log\', \'a\', encoding=\'utf-8\')
fmt = logging.Formatter(fmt="%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s")
file_1_1.setFormatter(fmt)
 
file_1_2 = logging.FileHandler(\'l1_2.log\', \'a\', encoding=\'utf-8\')
fmt = logging.Formatter()
file_1_2.setFormatter(fmt)
 
# 定义日志
logger1 = logging.Logger(\'s1\', level=logging.ERROR)
logger1.addHandler(file_1_1)
logger1.addHandler(file_1_2)
 
 
# 写日志
logger1.critical(\'1111\')

日志二:

1 # 定义文件
2 file_2_1 = logging.FileHandler(\'l2_1.log\', \'a\')
3 fmt = logging.Formatter()
4 file_2_1.setFormatter(fmt)
5  
6 # 定义日志
7 logger2 = logging.Logger(\'s2\', level=logging.INFO)
8 logger2.addHandler(file_2_1)

如上述创建的两个日志对象

  • 当使用【logger1】写日志时,会将相应的内容写入 l1_1.log 和 l1_2.log 文件中
  • 当使用【logger2】写日志时,会将相应的内容写入 l2_1.log 文件中

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

如何有条件地将 C 代码片段编译到我的 Perl 模块?

CTS测试CtsWindowManagerDeviceTestCases模块的testShowWhenLockedImeActivityAndShowSoftInput测试fail项解决方法(代码片段

如何将字符串数据从活动发送到片段?

argparse 代码片段只打印部分日志

nodejs常用代码片段

常用python日期日志获取内容循环的代码片段