Java 更改 log4j.xml 中的日期格式

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/21979606/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-13 11:48:14  来源:igfitidea点击:

changing date format in log4j.xml

javalog4j

提问by Kanak

Can anyone help me out on how to change the date format in the console. Currently the date format is like this : Feb 1, 2014 8:36:02 PM. All i want to change is the date format to 24 hour format. I tried changing the format in the log4j.xml file. this is the log4j.xml file :

任何人都可以帮助我了解如何更改控制台中的日期格式。目前的日期格式是这样的:2014 年 2 月 1 日晚上 8:36:02。我想要更改的只是将日期格式更改为 24 小时格式。我尝试更改 log4j.xml 文件中的格式。这是 log4j.xml 文件:

<?xml version="1.0" encoding="UTF-8" ?>

http://jakarta.apache.org/log4j/'>

http://jakarta.apache.org/log4j/'>

<appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
    <param name="LocationInfo" value="false"/>
    <appender-ref ref="RollFile"/>
    <appender-ref ref="CONSOLE"/>
</appender>

<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
    <param name="Threshold" value="INFO"/>
    <layout class="org.apache.log4j.PatternLayout">       
         <param name="ConversionPattern" value="%d{DATE} - %-5p [%c{1}] - %m%n"/>

    </layout>
</appender>

<appender name="RollFile" class="org.apache.log4j.RollingFileAppender">
    <param name="threshold" value="INFO"/>
    <param name="maxFileSize" value="10MB"/>
    <param name="File" value="RRT_Log.log"/>
    <param name="maxBackupIndex" value="20"/>
    <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="%d{DATE} - %-5p [%c] - %m%n"/>
    </layout>
</appender>

<root>
    <appender-ref ref="RollFile"/>
    <appender-ref ref="CONSOLE"/>
</root>

回答by Subhrajyoti Majumder

The date format specifier admits the same syntax as the time pattern string of the SimpleDateFormat. Set the date pattern like - %d{MMM dd,yyyy HH:mm:ss}

日期格式说明符接受与 的时间模式字符串相同的语法SimpleDateFormat。设置日期模式,如 -%d{MMM dd,yyyy HH:mm:ss}

<param name="ConversionPattern" value="%d{MMM dd,yyyy HH:mm:ss} - %-5p [%c] - %m%n"/>

回答by VinayVeluri

You can add patterns as defined here.

您可以添加此处定义的模式。

As per your requirement, pattern like - %d{yyyy-MM-dd HH:mm:ss}would be userful.

根据您的要求,像 -%d{yyyy-MM-dd HH:mm:ss}这样的模式会很有用。

Documentation says the following

文档说明如下

Pattern Example

模式示例

%d{ISO8601}                   2012-11-02 14:34:02,781

%d{ISO8601_BASIC}             20121102 143402,781

%d{ABSOLUTE}                  14:34:02,781

%d{DATE}                      02 Nov 2012 14:34:02,781

%d{COMPACT}                   20121102143402781

%d{HH:mm:ss,SSS}              14:34:02,781

%d{dd MMM yyyy HH:mm:ss,SSS}  02 Nov 2012 14:34:02,781

%d{HH:mm:ss}{GMT+0}           18:34:02,781

%d{UNIX}                      1351866842

%d{UNIX_MILLIS}               1351866842781

[EDIT]

[编辑]

This configuration works... Add the classes to console and root appenders

此配置有效...将类添加到控制台和根附加程序

<?xml version="1.0" encoding="UTF-8"?>

<!-- Appenders -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
    <param name="Target" value="System.out" />
    <layout class="XXX">
        <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p [%c{1}] (%t) [%X] %m%n" />
    </layout>
</appender>

<logger name="XXX">
    <level value="info"/>
</logger>

<!-- Root Logger -->
<root>
    <priority value="warn" />
    <appender-ref ref="console" />
</root>