Log4j2 не работает регистрация файлов Amazon ec2 - PullRequest
0 голосов
/ 22 марта 2020

Я только что преобразовал свой java сервер для использования Log4j2 из 1.

Мои файловые журналы работали отлично с 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 (которая отлично работает на моем локальном компьютере p c - регистрация в консоли / файле / электронной почте работает без проблем):

<?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 (мой компьютер windows 10) вывод консоли работает в режиме Eclipse, и создаются файлы (сообщения об ошибках также работают). Мой сервер PROD запускается нормально, но в моей папке " / home / ec2-user / JayServer / logs " файл журнала не создается. Есть идеи?

1 Ответ

0 голосов
/ 22 марта 2020

Нашел мое решение в другом посте " log4j 2 - проблема конфигурации "

"Я поместил свой log4j2. xml в каталог src /. Он работает."

Спасибо @ fstang

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...