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
Logging Log4j上的日期时间模式为纳秒_Logging_Log4j_Log4j2_Nanotime - Fatal编程技术网

Logging Log4j上的日期时间模式为纳秒

Logging Log4j上的日期时间模式为纳秒,logging,log4j,log4j2,nanotime,Logging,Log4j,Log4j2,Nanotime,我正在尝试设置JSON文件的日志记录,需要纳秒的时间来记录。但是当我尝试下一个结构时 <JsonLayout compact="true" properties="true" eventEol="true" > <KeyValuePair key="timestamp" value="$${date:HH:mm:ss.nnnnnnnnn}" /> </JsonLayout> 我得到一个错误: 错误无效日期格式:[HH:mm:ss.nnn],使用默

我正在尝试设置JSON文件的日志记录,需要纳秒的时间来记录。但是当我尝试下一个结构时

<JsonLayout compact="true" properties="true" eventEol="true" >
    <KeyValuePair key="timestamp" value="$${date:HH:mm:ss.nnnnnnnnn}" />
</JsonLayout>

我得到一个错误:

错误无效日期格式:[HH:mm:ss.nnn],使用默认的java.lang.IllegalArgumentException:非法模式字符“n”

我用纳秒尝试了不同的模式,但没有成功

对于.log文件,下一个模式可以工作,但是,对于.json它不工作(或者我不正确地应用了它)


我也犯了同样的错误

有两个类解析日期模式,FixedDateFormat和FastDateFormat。错误来自FastDateFormat,因为它不支持日期字段中的“n”格式。调用FastDateFormat的原因是,在构建显示格式的过程中,FixedDateFormat无法识别有效的日期模式

我研究了这个问题中的规范,以找到FixedDateFormat没有按预期解析日期模式的原因,但我找不到原因。如果我找到原因,我会发布一个更新这个答案


在我的例子中,我使用了模式“dd-MMM-YYYY-HH:mm:ss,nnnnnnnnn”而不是有效的模式“dd-MMM-YYYY-HH:mm:ss,nnnnnnnnn”(注意“y”的大写不正确)。

json格式应该包含一个
Instant
元素,其属性为epochSeconds和nanos(第二秒)。您看到了吗(如果您不尝试格式化时间戳)?似乎您正在尝试使用自定义属性日志格式进行日志记录,请尝试使用S而不是n
HH:mm:ss:sssss
,但如果在后台使用SimpleDataFormat,则会失败。从javadoc
如果模式字母数为4或更多,则抛出IllegalArgumentException
@LuisMuñoz what javadoc?注意,格式化是由自定义Log4j2格式化程序完成的。。据我所知,不是定制的。@LuisMuñoz超过3“S失败”
<PatternLayout pattern="%d{DEFAULT_NANOS} />