48 lines
1.3 KiB
Python
48 lines
1.3 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import logging
|
|
|
|
|
|
class LogManager:
|
|
"""
|
|
日志处理器类,同时在控制台和日志文件中打印日志
|
|
"""
|
|
|
|
# 日志对象
|
|
Logger = None
|
|
|
|
def __init__(self):
|
|
super(LogManager, self).__init__()
|
|
|
|
@staticmethod
|
|
def get_logger(param_name, log_file='/mywork/log/public-sentiment/public-sentiment.log', level=logging.INFO):
|
|
"""
|
|
获取日志对象
|
|
:param param_name:
|
|
:param log_file:
|
|
:param level:
|
|
:return:
|
|
"""
|
|
|
|
if LogManager.Logger is None:
|
|
LogManager.Logger = logging.getLogger(param_name)
|
|
LogManager.Logger.setLevel(level=level)
|
|
|
|
formatter = logging.Formatter(
|
|
'%(asctime)s [%(threadName)s-%(thread)d] [%(levelname)s] %(name)s.%(funcName)s[%(lineno)d] %(message)s')
|
|
|
|
file_handler = logging.FileHandler(log_file, encoding="utf-8")
|
|
file_handler.setLevel(level=level)
|
|
file_handler.setFormatter(formatter)
|
|
|
|
console = logging.StreamHandler()
|
|
console.setFormatter(formatter)
|
|
console.setLevel(level)
|
|
|
|
LogManager.Logger.addHandler(file_handler)
|
|
LogManager.Logger.addHandler(console)
|
|
return LogManager.Logger
|
|
else:
|
|
return LogManager.Logger
|