标准python记录器的一个小包装

structured-logger的Python项目详细描述


结构化记录器

编写此日志是为了尝试围绕python的默认logging库提供结构化日志记录。潜在的用途包括在弹性堆栈中添加要分析和筛选的其他对象。

如果需要结构化json日志输出,则可以使用此库,而不必对完整实现(如structlog)进行过度杀戮。这并不是要从structlog中拿走任何东西,对于大型项目来说,这仍然是一个更好的选择。

用法

记录器的使用方式应该与pythonlogging包类似。如果没有附加的上下文键,可以按如下方式使用:

fromstructured_loggerimportLoggerlogger=Logger(__name__)logger.set_level("DEBUG")# This could be set by an environment variabledeftest_function():do_a_thing()logger.info("this is a typical logging message")

但是,可以通过在消息之后传递参数的dict来输出附加上下文:

fromstructured_loggerimportLoggerlogger=Logger(__name__)logger.set_level("DEBUG")# This could be set by an environment variabledeftest_function():user_info=login()logger.info("user logged in",{"user":user_info})

最后,默认情况下,error()函数将提供额外的堆栈跟踪信息,并在适当的情况下提供异常信息:

fromstructured_loggerimportLoggerlogger=Logger(__name__)logger.set_level("DEBUG")# This could be set by an environment variabledeftest_function():try:something_that_raises_a_value_error()exceptValueError:logger.error("a value error has been thrown")

上面应该输出json和字段errorNameerrorMessageerrorStackTrace中的附加信息。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
用于读取OBS写入的java打开文件   java使用XFire通过ssl使用Web服务   java如何查看幸存者空间中的对象   不使用ActionListener从按钮执行java代码   java仅当用户执行某个操作时,如何清除应用程序的历史记录?   json无法反序列化'java'的实例。lang.Long`out-of-START\u对象标记;在弹簧靴柱上   JavaPOJO到OpenApi定义   java时间戳格式不显示不同的值   java Android:如何从片段切换到主要活动?   用于步进计数器/健身应用程序的java循环进度条   java Log4j更改特定记录器实例的记录器级别   JAVA中实现连接的数据结构   java Mockito静态函数mock   未找到java辅助技术:org。侏儒。可访问性。阿特克拉珀   java仅当列表中没有类似项时才向ArrayList添加项   java如何使用docx4j在word中添加合并字段?