不带时间戳模块名称的Python absl日志记录
我想知道是否可以在absl python中只记录msg字符串,而不记录时间戳和模块名。 范例 是否有如下配置只记录消息不带时间戳模块名称的Python absl日志记录,python,logging,abseil,absl-py,Python,Logging,Abseil,Absl Py,我想知道是否可以在absl python中只记录msg字符串,而不记录时间戳和模块名。 范例 是否有如下配置只记录消息 processing file: dfcsdf ['/topic/fdfgd', dfgsdf'] processing file: f456546fd ['/topic/1', '/topic/2', '/topic/3'] 我知道我可以用print for console或write custom logger替换日志记录,我想知道是否可以在absl日志记录中使用它?将f
processing file: dfcsdf
['/topic/fdfgd', dfgsdf']
processing file: f456546fd
['/topic/1', '/topic/2', '/topic/3']
我知道我可以用print for console或write custom logger替换日志记录,我想知道是否可以在absl日志记录中使用它?将formatter设置为None
您可以将格式化程序设置为None
。这可能看起来有点棘手,因为它没有很好的文档记录(我必须阅读以确保这是正确的),但以下工作:
from absl import app
from absl import logging
def main(argv):
logging.get_absl_handler().use_absl_log_file('log', "./FolderName")
logging.get_absl_handler().setFormatter(None)
logging.info('Info log')
logging.warning('Warning log')
if __name__ == '__main__':
app.run(main)
将formatter设置为None
后,我的日志文件如下所示:
信息日志
警告日志
自定义格式化程序
这就是说,实现自定义格式化程序并不难,而且我认为它更优雅,而且允许您自定义输出。您只需覆盖格式
函数:
from absl import app
from absl import logging
from absl.logging import PythonFormatter
class CustomPythonFormatter(PythonFormatter):
def format(self, record):
return super(PythonFormatter, self).format(record)
def main(argv):
logging.get_absl_handler().use_absl_log_file('log', "./Folder")
logging.get_absl_handler().setFormatter(CustomPythonFormatter())
logging.info('Info log')
logging.warning('Warning log')
if __name__ == '__main__':
app.run(main)
这给了我与之前相同的结果:
信息日志
警告日志
将格式化程序设置为None
您可以将格式化程序设置为None
。这可能看起来有点棘手,因为它没有很好的文档记录(我必须阅读以确保这是正确的),但以下工作:
from absl import app
from absl import logging
def main(argv):
logging.get_absl_handler().use_absl_log_file('log', "./FolderName")
logging.get_absl_handler().setFormatter(None)
logging.info('Info log')
logging.warning('Warning log')
if __name__ == '__main__':
app.run(main)
将formatter设置为None
后,我的日志文件如下所示:
信息日志
警告日志
自定义格式化程序
这就是说,实现自定义格式化程序并不难,而且我认为它更优雅,而且允许您自定义输出。您只需覆盖格式
函数:
from absl import app
from absl import logging
from absl.logging import PythonFormatter
class CustomPythonFormatter(PythonFormatter):
def format(self, record):
return super(PythonFormatter, self).format(record)
def main(argv):
logging.get_absl_handler().use_absl_log_file('log', "./Folder")
logging.get_absl_handler().setFormatter(CustomPythonFormatter())
logging.info('Info log')
logging.warning('Warning log')
if __name__ == '__main__':
app.run(main)
这给了我与之前相同的结果:
信息日志
警告日志