我有一个包含几个函数的Python文件。当“main”函数运行时,它会遍历函数。每个函数都需要在同一个日志文件中写入一些文本。在
我写了以下代码。在这里,每个文件都声明为全局处理程序。我想知道有没有更好的方法来达到这个目的?在
LOG_FILE_NAME = 'TestLog.log'
f = None
def log1():
global f
print 'log1 called'
f.write('log1 result' + '\n')
def log2():
global f
print 'log2 called'
f.write('log2 result' + '\n')
logFileDir = LOG_FILE_NAME
f = open(logFileDir, 'w')
log1()
log2()
f.close()
展开汤姆·道尔顿的链接(docs.python.org/2/howto/logging.html#logging-to-a-file):
也会把这个写成一个文件
^{pr2}$在您的示例中,您可以使用全局记录器,并且每个函数都可以调用它
如果需要多个记录器,可以使用
logging.getLogger()
,日志模块有很多灵活性,请查看文档(在链接中)。在一种方法是编写自己的简单日志函数作为闭包:
它避免了使用
global
,封装了file对象,简化了调用,并允许您通过为每个所需的文件名调用create_logger
来使用多个不同的文件名。例如,您可能希望向日志消息添加一个日期/时间戳,只需通过增强logger
函数在一个地方完成。在相关问题 更多 >
编程相关推荐