多么痛的领悟,困扰了这么久的问题其实就是一个参数配置错了。
fileMode:表示日志文件的打开方式。w-直接写,使用这个配置当系统重启的时候日志会清空,一个进程打开后其他进程是无法使用的;a-尾部追加,大山让侍家都可以打滑腔开往文件结尾进行追加写入。
本人主语言是java,转到python后日志这块踩了几个坑。再说说另外一个坑,就是异常堆栈的打印问题,在java中logger是可以使用error直逗吵接打印出来的。在python中error跟其他日志记录方法没太大差别,是无法打印异常堆栈的,打印堆栈请使用 logger.exception("异常说明", e) 。
import logging
logging.basicConfig()
logging.getLogger('芹渗apscheduler').setLevel(logging.DEBUG)
def my_listener(event):
if event.exception:
print('散首衡The job crashed :(')
else:
print('The job worked :)'冲做)
scheduler.add_listener(my_listener, EVENT_JOB_EXECUTED | EVENT_JOB_ERROR)
loggin模块需要进行很多封装才好用,你这种陵核带情况应该是初始化有问题,给你贴一段代码你自己照抄下来用用试试。
# -*- coding:UTF8 -*-#
import os
import logging
class Logger(object):
'''
@summary:日志处理对象,对logging的封装
'''
def __init__(self,name = 'Logger'):
self.logger = logging.getLogger( name )
氏简 self.init_logger()
def init_logger(self):
self.logger.setLevel(logging.DEBUG)
# 屏幕输出日志
stream = logging.StreamHandler()
stream.setLevel( logging.INFO )
# 日志样式
fm_stream = logging.Formatter("[\033[1%(colorcode)sm%(levelname)s\033[0m %(asctime)s %(myfn)s:%(mylno)d:%(myfunc)s%(mymodule)s] %(message)s", "%m-%d %H:%M:%S")
stream.setFormatter( fm_stream )
self.logger.addHandler( stream )
def update_kwargs(self, kwargs, colorcode):
try:
fn, lno, func = self.logger.findCaller()
fn = os.path.basename(fn)
except Exception as ddd:
fn, lno, func = "(unknown file)", 0, "(unknown function)"
if not "extra" in kwargs:
kwargs["extra"] = {}
kwargs["extra"]["myfn"] = fn
kwargs["extra"]["mylno"] = lno
kwargs["extra"]["myfunc"] = func
kwargs["extra"]["colorcode"] = colorcode
kwargs["extra"]["mymodule"] = ""
def debug(self, msg, *args, **kwargs):
self.update_kwargs(kwargs, "0") # 原色
self.logger.debug(msg, *args, **kwargs)
def info(self, msg, *args, **kwargs):
self.update_kwargs(kwargs, "32") # 绿色
self.logger.info(msg, *args, **kwargs)
def warning(self, msg, *args, **kwargs):
尺芦 self.update_kwargs(kwargs, "33") # 黄色
self.logger.warning(msg, *args, **kwargs)
def error(self, msg, *args, **kwargs):
self.update_kwargs(kwargs, "31") # 红色
self.logger.error(msg, *args, **kwargs)
def critical(self, msg, *args, **kwargs):
self.update_kwargs(kwargs, "31") # 红色
self.logger.critical(msg, *args, **kwargs)
使用方法:
from logger import LoggerLogger().info('xxxxx')
Logger().warning('xxxxx')
Logger().error('xxxxx')
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)