Java 如何自定义log4j2.xml参数
我不熟悉使用Java 如何自定义log4j2.xml参数,java,logging,log4j,log4j2,Java,Logging,Log4j,Log4j2,我不熟悉使用log4j2。我刚刚开始,准备了以下log4j2.xml配置文件: <?xml version="1.0" encoding="UTF-8"?> <Configuration status="INFO"> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%msg%n" /
log4j2
。我刚刚开始,准备了以下log4j2.xml
配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%msg%n" />
</Console>
<File name="MyFile" fileName="manager.log" immediateFlush="true" append="false">
<PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss} [%t] %-5level %logger{36} - %msg%n"/>
</File>
</Appenders>
<Loggers>
<Root level="debug">
<AppenderRef ref="Console" />
<AppenderRef ref="MyFile"/>
</Root>
</Loggers>
</Configuration>
我的xml中默认的日志记录行为和文件大小是多少?它是滚动文件,还是每天一次,或者只是一个巨大的文件,其大小会增加到默认值
如果没有,如何将其更改为2个最大为10mb的滚动文件?没有滚动行为,它只是附加到指定的文件。当append=“false”
时,它将在应用程序重新启动时覆盖任何现有文件
这可能就是你要找的
本手册有许多示例,但这可能与您的想法非常接近:
1 <?xml version="1.0" encoding="UTF-8"?>
2 <Configuration status="warn" name="MyApp" packages="">
3 <Appenders>
4 <RollingFile name="RollingFile" fileName="logs/app.log"
5 filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
6 <PatternLayout>
7 <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
8 </PatternLayout>
9 <Policies>
10 <TimeBasedTriggeringPolicy />
11 <SizeBasedTriggeringPolicy size="10 MB"/>
12 </Policies>
13 <DefaultRolloverStrategy max="2"/>
14 </RollingFile>
15 </Appenders>
16 <Loggers>
17 <Root level="error">
18 <AppenderRef ref="RollingFile"/>
19 </Root>
20 </Loggers>
21 </Configuration>
1
2.
3.
4.
6.
7%d%p%c{1.}[%t]%m%n
8.
9
10
11
12
13
14
15
16
17
18
19
20
21
那么默认文件(我的代码)的大小会有多大?没有限制,这取决于应用程序日志的大小。如果应用程序从未重新启动,最终可能会耗尽磁盘空间。哦,我明白了!然后我必须切换到你的代码!谢谢。有一个问题:为什么还有家长应用程序。日志?!我得到了这个以及两个滚动文件。app.log文件就是Log4j当前正在写入的文件。如果满足滚动条件,Log4j将“滚动”当前文件(重命名、移动到其他目录并压缩)。然后,它将创建一个新的“当前日志文件”,将日志事件附加到其中。您做了什么?你看过报纸了吗?看过。以上代码是我的研究成果!