logging 日志配用

  第一步,创建一个logger;

  第二步,创建一个handler,用于写入日志文件;

  第三步,再创建一个handler,用于输出到控制台;

  第四步,定义handler的输出格式;

  第五步,将logger添加到handler里面。这段代码里面提到了好多概念,包括:Logger,Handler,Formatter。

#第一步 创建一个logger
import logging
logger = logging.getLogger()
logger.setLevel(logging.INFO)       #log等级开关

#第二步  创建一个handler  用来写日志文件
fh = logging.FileHandler("test.log",encoding="utf-8")
fh.setLevel(logging.DEBUG)  #输出到file 的log等级开关

#第三步    再创建一个handler  用于输出到控制台
ch = logging.StreamHandler()
ch.setLevel(logging.WARNING)   #输出到console的log等级开关

#第四步  定义handler的输出格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)
ch.setFormatter(formatter)

#第五步 将logger添加到handler里面
logger.addHandler(fh)
logger.addHandler(ch)

#日志
logger.debug('logger debug message')      # 计算或者工作的细节
logger.info('logger info message')        # 记录一些用户的增删改查的操作
logger.warning('logger warning message')  # 警告操作
logger.error('logger error message')       # 错误操作
logger.critical('logger critical message')    # 批判的 直接导致程序出错退出的

格式的常用语法

%(name)s:Logger的名字,并非用户名,详细查看

%(levelno)s:数字形式的日志级别

%(levelname)s:文本形式的日志级别

%(pathname)s:调用日志输出函数的模块的完整路径名,可能没有

%(filename)s:调用日志输出函数的模块的文件名

%(module)s:调用日志输出函数的模块名

%(funcName)s:调用日志输出函数的函数名

%(lineno)d:调用日志输出函数的语句所在的代码行

%(created)f:当前时间,用UNIX标准的表示时间的浮 点数表示

%(relativeCreated)d:输出日志信息时的,自Logger创建以 来的毫秒数

%(asctime)s:字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒

%(thread)d:线程ID。可能没有

%(threadName)s:线程名。可能没有

%(process)d:进程ID。可能没有

%(message)s:用户输出的消息

 详情网址  http://dwz.cn/yPC4tFWL

posted @ 2018-09-07 19:50  云丛  阅读(96)  评论(0编辑  收藏  举报