我创建了一个logging.conf文件,该文件适用于一个进程。它会在正确的文件中正确记录所有内容:
[loggers]
keys=root
[logger_root]
handlers=screen,file
level=DEBUG
[formatters]
keys=simple,complex
[formatter_simple]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
[formatter_complex]
format=%(asctime)s - %(name)s - %(levelname)s - %(module)s : %(lineno)d - %(message)s
[handlers]
keys=file,screen
[handler_file]
class=handlers.TimedRotatingFileHandler
interval=midnight
backupCount=7
formatter=complex
level=DEBUG
args=('../logs/my_log.log',)
[handler_screen]
class=StreamHandler
formatter=simple
level=DEBUG
args=(sys.stdout,)
这就是我如何在我的脚本中获取我的记录器对象:
# Create logger
logging.config.fileConfig('../logging.conf')
logger = logging.getLogger()
问题是 - 现在我有多个进程使用相同的脚本,而 都使用相同的日志文件 ,这是导致并发错误的原因。
如何从脚本中设置我的日志文件名?有一种方法可以动态设置args=('../logs/my_log.log',)
的{{1}}属性吗?
答案 0 :(得分:0)
您可以在脚本
中的运行时创建文件处理程序filehandler = logging.FileHandler("process1.log")
filehandler.setFormatter( ... )
logger.addHandler(filehandler)
有关详细文档,请参阅https://docs.python.org/2/howto/logging.html#logging-advanced-tutorial