python日志模块---logging

通过ini文件配置logging

logger.ini

[loggers]
keys=root,cLogger,fLogger,cfLogger

[logger_root]
level=DEBUG
handlers=fh

[logger_cLogger]
handlers=ch
qualname=cLogger
propagate=0

[logger_fLogger]
handlers=fh
qualname=fLogger
propagate=0

[logger_cfLogger]
level=DEBUG
handlers=fh,ch
qualname=cfLogger
propagate=0


[handlers]
keys=ch,fh

[handler_ch]
class=StreamHandler
level=DEBUG
formatter=form02
args=(sys.stdout,)

[handler_fh]
class=FileHandler
level=DEBUG
formatter=form01
args=('my.log', 'a')


[formatters]
keys=form01,form02

[formatter_form01]
format=%(asctime)s|%(name)s|%(levelname)s|[%(process)d,%(thread)d]|%(message)s|[%(filename)s,%(lineno)d]
datefmt=%Y-%m-%d %H:%M:%S

[formatter_form02]
format=%(asctime)s|%(name)s|%(levelname)s|[%(process)d,%(thread)d]|%(message)s|[%(filename)s,%(lineno)d]
datefmt=%Y-%m-%d %H:%M:%S

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: 打印日志信息

loggerdemo.py

# !/usr/bin/env python
# coding:utf-8


from logging.config import fileConfig
import logging

logging.config.fileConfig('logger.ini')
logger=logging.getLogger('cfLogger')
logger.info('hello python.')

屏幕上打印
D:\python\logger-demo> python .\loggerdemo.py
2018-03-12 22:18:42|cfLogger|INFO|[9464,5532]|hello python.|[loggerdemo.py,10]

猜你喜欢

转载自blog.csdn.net/f43tt/article/details/79534192