2012-07-16 65 views
2

我正在尝试使用Python配置文本配置文件中的日志记录器。以下是部分内容:Python在日志配置文件中设置filemode

[logger_root] 
handlers=result 
level=NOTSET 

[handler_result] 
class=handlers.TimedRotatingFileHandler 
interval=midnight 
backupCount=5 
formatter=simple 
level=DEBUG 
args=('result_log.txt') 

我想我每次运行系统时间重写日志文件。但不知道如何在文件中设置它。我尝试这一点,但失败:

args=('result_log.txt',filemode='w') 

很多文章谈论如何从Python代码设置。但我想将其设置在文件中。怎么做?谢谢。

=======================================

编辑:可以写一些信息记录到日志文件“result_log.txt”由:

result_logger = logging.getLogger('result') 
result_logger.debug("info to write") 

但我只能“附加”的文件。我想在每次运行时重写该文件。

+0

你想在'result_log.txt'中写什么? – 2012-07-16 07:58:43

+0

@AshwiniChaudhary:请看我编辑的帖子。 – Joy 2012-07-16 08:04:46

回答

1

您可以使用两种方法: -

  1. 备份旧的日志文件,并使用RotatingFileHandler

  2. 替换文件的新文件本身(假设你不再需要旧日志)。你可以看看this的步骤

希望这会有所帮助。

+0

谢谢。但是我会在每次运行后将日志文件复制到其他地方。所以我不介意重写旧的日志。我希望能够自动重写。 – Joy 2012-07-16 14:16:21

+0

那么在这种情况下,你应该可以通过移除处理程序并在每次运行程序时重新分配处理程序来完成。请参阅我给出的链接。 – gkris 2012-07-16 14:31:49

+0

在你给的链接中,我需要明确指定文件处理程序,这不是我想要的。我只想在conf文件中给出日志文件名,而不是在Python代码的任何位置。 – Joy 2012-07-16 14:58:45

0

而不是使用记录器模块,你能够使用下面的代替吗?

open("result_log.txt", "w").write("result") 

我知道这将是现在的解决方法,直到有人能够更好地回答这个问题。

希望这有助于:)

+0

感谢您的回复。但记录器有很多好处,也许你想检查[Python日志记录](http://docs.python.org/library/logging.html) – Joy 2012-07-16 08:37:04