com*_*pie 17 python logging rotation
我正在使用以下代码初始化我的应用程序中的日志记录:
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
# log to a file
directory = '/reserved/DYPE/logfiles'
now = datetime.now().strftime("%Y%m%d_%H%M%S")
filename = os.path.join(directory, 'dype_%s.log' % now)
file_handler = logging.FileHandler(filename)
file_handler.setLevel(logging.DEBUG)
formatter = logging.Formatter("%(asctime)s %(filename)s, %(lineno)d, %(funcName)s: %(message)s")
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
# log to the console
console_handler = logging.StreamHandler()
level = logging.INFO
console_handler.setLevel(level)
logger.addHandler(console_handler)
logging.debug('logging initialized')
Run Code Online (Sandbox Code Playgroud)
如何关闭当前日志文件并重新开始记录到新文件?
注意:我不想使用RotatingFileHandler,因为我想要完全控制所有文件名.
Mah*_*der 26
你可以手动重新分配处理程序,如果你想使用removeHandler和addHandlerOR,你可以logger.handlers[index_of_handler_here].stream手动访问和替换流,但我建议前者超过后者.
logger.handlers[0].stream.close()
logger.removeHandler(logger.handlers[0])
file_handler = logging.FileHandler(filename)
file_handler.setLevel(logging.DEBUG)
formatter = logging.Formatter("%(asctime)s %(filename)s, %(lineno)d, %(funcName)s: %(message)s")
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14197 次 |
| 最近记录: |