Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.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
Java 将微秒级添加到log4j_Java_Log4j_Log4j2 - Fatal编程技术网

Java 将微秒级添加到log4j

Java 将微秒级添加到log4j,java,log4j,log4j2,Java,Log4j,Log4j2,指 如何添加微秒级日志记录,如何为此创建自定义模式格式化程序 我也尝试过log4j2,但最终失败了 12:42:05,972803200 [main] DEBUG Log4j2Test - Debug Message Logged !!! 12:42:05,975803200 [main] INFO Log4j2Test - Info Message Logged !!! 12:42:05,975803200 [main] ERROR Log4j2Test - Error Message Lo

如何添加微秒级日志记录,如何为此创建自定义模式格式化程序

我也尝试过log4j2,但最终失败了

12:42:05,972803200 [main] DEBUG Log4j2Test - Debug Message Logged !!!
12:42:05,975803200 [main] INFO  Log4j2Test - Info Message Logged !!!
12:42:05,975803200 [main] ERROR Log4j2Test - Error Message Logged !!!
如你所见,它总是给出803200微秒和纳秒

我的log4j2.xml看起来像:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
<Appenders>
    <Console name="console" target="SYSTEM_OUT">
    <PatternLayout pattern="%d{ABSOLUTE_NANOS} [%t] %-5level %logger{36} - %msg%n"/>
       <!--  <PatternLayout
            pattern="[%-5level] %d{ABSOLUTE_NANOS} [%t] %c{1} - %msg%n" /> -->
    </Console>
</Appenders>
<Loggers>
    <Root level="debug" additivity="false">
        <AppenderRef ref="console" />
    </Root>
</Loggers> 


这取决于您使用的是什么log4j。仅当您使用JDK9和新(er)版本的log4j(2.x)时,才支持此功能

您正在搜索的格式是: %d{HH:mm:ss,nnnnnn}

还请注意官方文件所说的,因为有很多“捕获和捕获”。即:

log4j2.11增加了对时间戳的有限支持,在Java9上运行时,时间戳比毫秒更精确。请注意,并非所有DateTimeFormatter格式都受支持。只有上表中提到的格式的时间戳可以使用“nano of second”模式字母n,而不是“分数of second”模式字母S。 当在Java 9上运行时,用户可以通过将系统属性log4j2.clock设置为SystemMillisLock恢复到毫秒精度时钟


有关以下链接的更多信息:

这取决于您使用的是什么log4j。仅当您使用JDK9和新(er)版本的log4j(2.x)时,才支持此功能

您正在搜索的格式是: %d{HH:mm:ss,nnnnnn}

还请注意官方文件所说的,因为有很多“捕获和捕获”。即:

log4j2.11增加了对时间戳的有限支持,在Java9上运行时,时间戳比毫秒更精确。请注意,并非所有DateTimeFormatter格式都受支持。只有上表中提到的格式的时间戳可以使用“nano of second”模式字母n,而不是“分数of second”模式字母S。 当在Java 9上运行时,用户可以通过将系统属性log4j2.clock设置为SystemMillisLock恢复到毫秒精度时钟



有关以下链接的更多信息:

请看这里:是的,我在第一行中引用了相同的链接。在那里@Peter Lawrey建议创建自己的自定义格式化程序,我想知道如何创建一个用于微秒日志记录的格式化程序。Peter Lawrey在2011年,在Java 9和Log4j 2.11之前提出了这个建议。获得所需结果不需要自定义格式。您是否考虑过编写一个运行时间稍长的测试,以查看输出是否不是测试的工件?是的,我已经创建了自己的测试,给出了正确的时间,直到毫秒,之后才803200。我看到了相同的行为。我相信你发现了一只虫子。你能在Log4j2问题跟踪器中提出一个bug报告吗?看看这里:是的,我在第一行中提到了相同的链接。在那里@Peter Lawrey建议创建自己的自定义格式化程序,我想知道如何创建一个用于微秒日志记录的格式化程序。Peter Lawrey在2011年,在Java 9和Log4j 2.11之前提出了这个建议。获得所需结果不需要自定义格式。您是否考虑过编写一个运行时间稍长的测试,以查看输出是否不是测试的工件?是的,我已经创建了自己的测试,给出了正确的时间,直到毫秒,之后才803200。我看到了相同的行为。我相信你发现了一只虫子。你能在Log4j2问题跟踪器中提出一个bug报告吗?我使用的是JRE10,和你提到的格式相同,但给出了相同的微秒和纳秒值。它看起来像一个旧bug。快速检查Apache基金会给了我以下问题:因此我建议您更新Maven依赖项(如果您使用Maven)或手动下载并添加一个更新的库。我的快速搜索也无法确认对JDK10的任何引用,因此您可能希望重新考虑“降级”。另外,请确认您的项目使用的是JDK 10,因为有很多例子表明,人们忽略了IDE中的一些自动功能,这些功能会在不知不觉中“降级”JDK。在下载JRE9时,oracle网站
上说Java SE 9已经到了支持的末端。Java SE 9的用户应切换到Java SE 10。
。是的,我使用的是JRE10。你们提到的bug也是纳秒级的,即使微秒级也可以。你们能确认你们使用的是log4j/log4j 2版本吗?因为它说它影响了v2.5,这个问题类似于你的问题。另外,请注意这一部分:“解决方案是将NanoClock设置为配置的一个字段,并带有一个初始的虚拟nano clock值。PatternParser现在只在检测到nano time转换模式时修改其配置的nano clock。”我使用的是JRE10以及您提到的相同格式,但给出了相同的微秒和纳秒值。它看起来像一个旧的bug。快速检查Apache基金会给了我以下问题:因此我建议您更新Maven依赖项(如果您使用Maven)或手动下载并添加一个更新的库。我的快速搜索也无法确认对JDK10的任何引用,因此您可能希望重新考虑“降级”。另外,请确认您的项目使用的是JDK 10,因为有很多例子表明,人们忽略了IDE中的一些自动功能,这些功能会在不知不觉中“降级”JDK。在下载JRE9时,oracle网站
上说Java SE 9已经到了支持的末端。Java SE 9的用户应切换到Java SE 10。
。是的,我使用的是JRE10。你们提到的bug也是纳秒级的,即使微秒级也可以。你们能确认你们使用的是log4j/log4j 2版本吗?因为它说它影响了v2.5,这个问题类似于你的问题。另外,请注意这一部分:“解决方案是使NanoClock成为配置的一个字段,并带有一个初始的虚拟nano clock值。PatternParser现在只在检测到nano time转换模式时修改其配置的nano clock。”