Python: python 实现每天产生一个日志文件

python scott 260℃ 0评论

与java apache log4j的ConsoleAppender,RollingFileAppender类似,python也有自己的实现,分别是logging.StreamHandler(),logging.handlers.TimedRotatingFileHandler.

下面是示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def script_path():
    path = os.path.realpath(sys.argv[0])
    if os.path.isfile(path):
    path = os.path.dirname(path)
    return os.path.abspath(path)
LOGGING_MSG_FORMAT  = '[%(asctime)s] [%(levelname)s] [%(module)s] [%(funcName)s] [%(lineno)d] %(message)s'
LOGGING_DATE_FORMAT = '%Y-%m-%d %H:%M:%S'
logging.basicConfig(level=logging.DEBUG,format=LOGGING_MSG_FORMAT,datefmt=LOGGING_DATE_FORMAT)
log = logging.getLogger('xxx')
log_path = os.path.join(script_path(),'logs')
if not os.path.exists(log_path):
    os.makedirs(log_path)
log_file = os.path.join(log_path,'xxx.log')
logger = logging.handlers.TimedRotatingFileHandler(log_file,'midnight',1)
logger.setFormatter(logging.Formatter(LOGGING_MSG_FORMAT))
log.addHandler(logger)
console = logging.StreamHandler()
console.setLevel(logging.INFO)
console.setFormatter(logging.Formatter(LOGGING_MSG_FORMAT))
log.addHandler(console)

注意事项:
不要在多线程程序中使用addHandler,removeHandler,否则可能产生一些意想不到的异常

。建议:
全局只初始化一次logger实例

原文:http://ucstudio.iteye.com/blog/2212447

转载请注明:osetc.com » Python: python 实现每天产生一个日志文件

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址