当前位置: 首页 > 面试题库 >

记录到多个输出

越骏俊
2023-03-14
问题内容

Go语言中有没有办法记录到不同级别的多个输出?

我希望有一个程序可以同时在Info级别记录到stdout并在带有时间戳的调试级别记录一个文件。

就像我每次编写代码一样:

log.Debug("Entering some func")
res := func()
log.Infof("Result was: %s", res)

我可以看到控制台打印:

Result was: Successful

和一个文件:

2015-03-26T01:27:38-04:00 [DEBU]: Entering some func
2015-03-26T01:27:38-04:00 [INFO]: Result was: Successful

我使用logrus和glog,但是找不到此功能。还有其他包装或我可以编码的东西吗?


问题答案:

Go-logging支持不同的日志记录后端,例如文件,syslog等。可以设置多个后端,每个后端和记录器具有不同的日志级别。这里的例子。

Lumberjack还可与此一起用于将日志写入滚动文件。这是一个例子。



 类似资料:
  • 给定:我在Kafka中有两个主题,假设主题A和主题B。Kafka流从主题A中读取一条记录,对其进行处理,并产生与所消耗记录相对应的多条记录(假设recordA和recordB)。现在的问题是我如何使用Kafka流来实现这一点。 在这里,读取的记录是消息;处理之后,它返回一个消息列表。如何将此列表划分为两个生产者流?任何帮助都将不胜感激。

  • 问题内容: 构造之后,使用标准的Java日志记录API(导入java.util.logging.Logger): 我已经可以登录了。由于它没有FileHandler,因此不会向磁盘写入任何内容。 它写入(不是全部)日志消息以输出。如何禁用此功能?在此先感谢Agostino 问题答案: 如果您不知道Java util日志记录的默认配置,就会出现问题。体系结构事实:0)每个记录器(无论其名称是什么)都

  • 我希望我的Spring批处理应用程序一次从数据库中读取50条记录,然后将这50条记录发送给处理器,然后发送给写入器。 有人可以告诉我如何做到这一点吗? 我尝试使用JdbcPagingItemReader并将pageSize设置为50,这样可以读取50条记录,但是rowMapper、处理器和编写器一次接收一条记录,而不是获得50条记录。 如何使处理器和写入器在dto中获得50条记录,而不是一次接收一

  • 在一个使用log4j和slf4j的应用程序中,我尝试使用依赖于log4j2的elasticsearch jar。 应用程序的日志依赖项如下所示- 应用程序使用自己的<code>log4j。xml并具有一些log4j的自定义附加器,因此如果不重写附加器,则无法将其迁移到log4j2。 根据elasticsearch文档中的建议,添加了以下依赖项,以使用不同于log4j2的记录器。 但是现在在启动应用

  • 问题内容: 我的工作按日期处理数据,需要将输出写入特定的文件夹结构。当前的期望是生成如下结构: 等等 在任何时候,我最多只能获得12个月的数据,因此,我正在使用类在驱动程序中使用以下函数创建12个输出: 在reducer中,我添加了一个清理功能,以将生成的输出移动到适当的目录。 问题:在将输出从_temporary目录移动到输出目录之前,reducer的清除功能正在执行。因此,由于所有数据仍位于_

  • 等等。 在任何时候,我只能获得长达12个月的数据,因此,我使用类在驱动程序中使用以下函数创建12个输出: 在reducer中,我添加了一个cleanup函数,将生成的输出移动到适当的目录。 null