【发布时间】:2015-09-08 10:10:56
【问题描述】:
在 Vert.x 中记录到文件的最快异步方式是什么?
目的是将来自不同类(即 Class1、Class2 等)的记录器的日志写入 1 个文件(类似于“console.log”)
【问题讨论】:
-
您至少应该指定您使用的是哪个版本的
Vert.x?到目前为止你做了什么?您正在开发什么类型的应用程序?
标签: java performance vert.x
在 Vert.x 中记录到文件的最快异步方式是什么?
目的是将来自不同类(即 Class1、Class2 等)的记录器的日志写入 1 个文件(类似于“console.log”)
【问题讨论】:
Vert.x?到目前为止你做了什么?您正在开发什么类型的应用程序?
标签: java performance vert.x
Vert.x 使用 JDK 捆绑的 JUL 日志框架来避免发送额外的依赖项。但是,它允许附加自定义记录器实现。
假设您想坚持使用默认的日志记录工具,那么自定义日志处理程序就像删除一个日志文件并通过 java.util.logging.config.file 系统属性引用它一样简单:
例如,您可以将日志记录配置文件放在 (fat) jar 根路径下的 config 目录下,如下所示:
handlers = java.util.logging.MyFileHandler
config =
#...
然后,您应该在启动 Vert.x 应用程序时在系统属性中引用该文件,如下所示:
-Djava.util.logging.config.file=config/logging.properties
然后您可以在您的类中访问Logger 对象,如下所示:
Logger logger = LoggerFactory.getLogger("some.package.MyClass");
使用该记录器记录将由配置的处理程序处理的消息:
logger.info("some informative message");
注意在属性文件中使用自定义日志处理程序来强调附加您自己的处理程序的可能性(可能会扩展默认的FileHandler)。
查看 Vert.x 文档以获取有关如何使用 explore the logging feature 的更多信息。
【讨论】:
大多数记录器从一开始就是异步的,即它们不会立即写入信息。日志存储在缓冲区中,缓冲区在超时或满时被刷新。所以 slf4j + log4 对于大多数情况来说已经足够了。
【讨论】: