Log4j2亚马逊ec2文件日志记录不工作



我刚刚将java服务器从1转换为使用Log4j2。

我的文件日志与Log4j1:配合得很好

try {
Date currentStamp = new Date();
String sdf = new SimpleDateFormat("yyyy-MM-dd_HH.mm.ss").format(currentStamp);
File theFile = new File("logs/");
theFile.mkdirs();
fileAppender = new RollingFileAppender(
new PatternLayout("[%d{yyyy-MM-dd HH:mm:ss}] %r [%t] %p %C - %m%n"),
"logs/" + sdf + "_serverLog.txt");
fileAppender.setMaxFileSize("50MB");
fileAppender.setMaxBackupIndex(50); //2.5 gigs
} catch (IOException e) {
e.printStackTrace();
}

以下是我使用Log4j2的新配置(它在我的本地电脑上运行良好-控制台/文件/电子邮件日志记录工作没有问题(:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration xmlns="http://logging.apache.org/log4j/2.0/config">
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%-5p | %d{yyyy-MM-dd HH:mm:ss} | [%t] %C{2} (%F:%L) - %m%n" />
</Console>
<RollingRandomAccessFile name="FILE" fileName="logs/serverLog.txt" filePattern="logs/serverLog_%d{yyyy-MM-dd}_%i.txt">
<PatternLayout>
<Pattern>%-5p | %d{yyyy-MM-dd HH:mm:ss} | [%t] %C{2} (%F:%L) - %m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="50 MB"/>
</Policies>
<DefaultRolloverStrategy max="50"/>
</RollingRandomAccessFile>
<SMTP name="EMAIL"
subject="REMOVED"
from="REMOVED"
to="REMOVED"
smtpHost="REMOVED"
smtpPort="REMOVED"
smtpUsername="REMOVED"
smtpPassword="REMOVED"
bufferSize="REMOVED">
</SMTP>
</Appenders>
<Loggers>
<Logger name="com.jayavon.game" level="debug" additivity="false">
<AppenderRef ref="STDOUT" />
<AppenderRef ref="FILE" />
</Logger>
<Root level="error" additivity="false">
<AppenderRef ref="EMAIL" />
</Root>
</Loggers>
</Configuration>

我的PROD(ec2(服务器通过以下方式调用:

nohup /home/ec2-user/bin/startJayServer.sh &

这个脚本是:

#!/bin/sh
cd /home/ec2-user/JayServer
CLASSPATH="/home/ec2-user/JayServer/bin:/home/ec2-user/JayServer/lib/*" java -server com.jayavon.game.server.MyServer -PROD > /dev/null 2>logs/server.err

服务器启动脚本和nohup命令在Log4j1中运行良好(即文件夹权限良好(。在DEV(我的windows10机器(上,控制台输出在eclipse中工作,并创建文件(错误电子邮件也工作(。我的PROD服务器启动良好,但在我的">/home/ec2 user/JayServer/logs"文件夹中没有创建任何文件日志。有什么想法吗?

在另一篇文章"log4j 2-配置问题"上找到了我的解决方案

"我把我的log4j2.xml放在src/directory下。它有效。">

感谢@fstang

最新更新