【发布时间】:2014-02-07 17:12:10
【问题描述】:
我正在使用 Java 1.7 和 Log4j2 (beta9),并且我有以下 log4j2.xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="info">
<Appenders>
<Console name="CONSOLE" target="SYSTEM_OUT">
<PatternLayout pattern="[%d{dd/MMM/yyyy HH:mm:ss.SSS}]> %-5p - %m%n"/>
</Console>
<RollingFile name="RollingFile" fileName="logs/foo.log" filePattern="logs/foo-%d{dd-MMM-yyyy}-%i.log">
<Policies>
<OnStartupTriggeringPolicy/>
</Policies>
<DefaultRolloverStrategy fileIndex="max" max="10"/>
<PatternLayout pattern="[%d{dd/MMM/yyyy HH:mm:ss.SSS}]> %-5p - %m%n"/>
</RollingFile>
<Async name="ASYNC">
<AppenderRef ref="RollingFile"/>
<AppenderRef ref="CONSOLE"/>
</Async>
</Appenders>
<Loggers>
<Root level="debug">
<AppenderRef ref="ASYNC"/>
</Root>
</Loggers>
</Configuration>
就日志记录本身而言,它可以满足我的需要。
作为错误/异常序列的一部分,我需要发送一封电子邮件,其中包含日志文件作为附件。
如何以编程方式获取 'fileName="logs/foo.log"' 位?我真的很讨厌不得不硬编码。
【问题讨论】:
-
log4j smpt appender 可以选择吗?它会通过电子邮件发送您记录的任何内容,包括异常。
-
我担心内存问题,但我会尝试一下。
-
SMTP 附加程序是一个不错的选择,但遗憾的是,我的情况并非如此。对于那些感兴趣的人,logging.apache.org/log4j/2.x/manual/appenders.html#SMTPAppender