我试图使用配置文件和自己的处理程序python日志记录.这在某种程度上起作用.让我感到困惑的是__init__两次__del__被召唤并被召唤一次.当我删除整个配置文件的东西并直接在代码中创建处理程序__init__被调用一次并且__del__永远不会被调用.
我的问题:
__init__叫两次?__del__召唤的频率低于__init__?代码:
#!/bin/env python
import logging
import logging.handlers
import logging.config
class Test1TimedRotatingFileHandler(logging.handlers.TimedRotatingFileHandler):
def __init__(self,filename):
print "init called"
logging.handlers.TimedRotatingFileHandler.__init__(self,filename, when='S', interval=86400, backupCount=8, encoding=None)
def __del__(self):
print "del called"
if hasattr(logging.handlers.TimedRotatingFileHandler,"__del__"):
logging.handlers.TimedRotatingFileHandler.__del__(self)
logging.config.fileConfig('/root/test1.conf')
logger = logging.getLogger("test1")
Run Code Online (Sandbox Code Playgroud)
配置文件:
[formatters]
keys: simple
[handlers]
keys: file
[loggers]
keys: root
[formatter_simple]
format: "%(message)s"
[handler_file]
class: test1.Test1TimedRotatingFileHandler
args: ("/root/test1.log",)
level=INFO
[logger_root]
level: INFO
handlers: file
qualname: test1
Run Code Online (Sandbox Code Playgroud)
输出如下:
init called …Run Code Online (Sandbox Code Playgroud)