Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不带时间戳模块名称的Python absl日志记录_Python_Logging_Abseil_Absl Py - Fatal编程技术网

不带时间戳模块名称的Python absl日志记录

不带时间戳模块名称的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

我想知道是否可以在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日志记录中使用它?

将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)
这给了我与之前相同的结果:

信息日志

警告日志