方法一:
import logging
log = logging.getLogger('log')
log.setLevel(logging.INFO)
Handler = logging.StreamHandler()
Handler.setLevel(logging.INFO)
file = logging.FileHandler(filename='1_q.log', encoding="utf-8", mode="a")
f = logging.Formatter("%(asctime)s%(levelname)sl%(filename)s:%(lineno)s1%(message)s")
Handler.setFormatter(f)
file.setFormatter(f)
log.addHandler(Handler)
log.addHandler(file)
log.debug('debug,用来打印一些调试信息,级别最低')
log.info('info,用来打印一些正常的操作信息')
log.warning('waring,用来用来打印警告信息')
log.error('error,一般用来打印一些错误信息')
log.critical('critical,用来打印一些致命的错误信息,等级最高')
方法二: 设置配置文件:文件名:logging.conf
解释:
# 定义记录器
[loggers] #固定写法
keys=root,applog #创建2个app名,root是父类,必需存在的
# 定义处理器
[handlers]
keys=fileHandler,consoleHandler # 定义了两个 分配给两个记录器
# 定义格式
[formatters]
keys=simpleFormatter
# 记录器1 的绑定
[logger_root]
level=DEBUG
handlers=consoleHandler
# 记录器2 的绑定
[logger_applog]
level=DEBUG
handlers=fileHandler,consoleHandler
qualname=applog # 别名
propagate=0 # 0代表不继承
# 处理器 --
[handler_consoleHandler]
class=StreamHandler
args=(sys.stdout,)
level=DEBUG
formatter=simpleFormatter
# 处理器 --
[handler_fileHandler]
class=handlers.TimedRotatingFileHandler # 时间规划
args=('applog', 'midnight',1,0) # 每天midnight(午夜)分割 延迟1秒 备份个数 0为全部
level=DEBUG
formatters=simpleFormatter
# 格式 --
[formatter_simpleFormatter]
format=%(asctime)s|%(levelname)s|%(filename)s[:%(lineno)d]|%(message)s
datefmt=%Y-%m-%d %H:%M:%S
使用时:
[loggers]
keys=root,applog
[handlers]
keys=fileHandler,consoleHandler
[formatters]
keys=simpleFormatter
[logger_root]
level=DEBUG
handlers=consoleHandler
[logger_applog]
level=DEBUG
handlers=fileHandler,consoleHandler
qualname=applog
encoding="utf-8"
propagate=0
[handler_consoleHandler]
class=StreamHandler
args=(sys.stdout,)
level=DEBUG
formatter=simpleFormatter
[handler_fileHandler]
class=handlers.TimedRotatingFileHandler
args=('applog', 'midnight',1,0)
level=DEBUG
formatters=simpleFormatter
[formatter_simpleFormatter]
format=%(asctime)s|%(levelname)8s|%(filename)8s[:%(lineno)d]|%(message)8s
datefmt=%Y-%m-%d %H:%M:%S
代码使用:
import logging.config
logging.config.fileConfig('logging.conf')
logger = logging.getLogger('applog')
logger.debug("3")
|