Log4j2.xml не создает файл внезапно в платформе Java Hibernate - PullRequest
0 голосов
/ 29 января 2019

У меня есть проект maven в NetBeans с каркасом гибернации.Долгое время он делал свою работу правильно.После некоторой модификации базы данных консольный журнал все еще работает, но запись в файл остановлена ​​без каких-либо ошибок или исключений.Я удалил каталог файла журнала и перезапустил проект, но на этот раз он даже не смог создать каталог пути к файлу.вот моя конфигурация log4j2.xml (в src / main / resources)

Я изменил путь к D: \ logs и D: / logs и пробовал разные уровни (отладка, информация, ошибка).Также попытался запустить мой «Server.jar» из командной строки администратором.И следует отметить, что я попробовал решение в Log4J создает файл журнала, но не записывает в него и множество других предлагаемых решений, но успех не достигнут.

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="debug">
    <Properties>
        <Property name="path">${sys:user.home}/logs/server</Property>
    </Properties>
    <Appenders >
        <RollingFile name="connections"  append="true"  fileName="${path}/connections.log"
                     filePattern="${path}/connections-%d{yyyy-MM-dd}-%i.log" >
            <!-- log pattern -->
            <PatternLayout>
                <pattern> %d{yyyy-MM-dd HH:mm:ss}  [%-4level] - %msg %n</pattern>
            </PatternLayout>
            <!-- set file size policy -->
            <Policies>
                <SizeBasedTriggeringPolicy size="10 MB" />
            </Policies>
            <DefaultRolloverStrategy max="10"/>
        </RollingFile>        
        <RollingFile name="unexpected-events"  append="true"  fileName="${path}/unexpected-events.log"
                     filePattern="${path}/unexpected-events-%d{yyyy-MM-dd}-%i.log" >
            <!-- log pattern -->
            <PatternLayout>
                <pattern> %d{yyyy-MM-dd HH:mm:ss}  [%-4level] - %msg %n</pattern>
            </PatternLayout>
            <!-- set file size policy -->
            <Policies>
                <SizeBasedTriggeringPolicy size="10 MB" />
            </Policies>
            <DefaultRolloverStrategy max="10"/>
        </RollingFile>
        <RollingFile name="readouts"  append="true"  fileName="${path}/readouts.log"
                     filePattern="${path}/readouts-%d{yyyy-MM-dd}-%i.log" >
            <!-- log pattern -->
            <PatternLayout>
                <pattern> %d{yyyy-MM-dd HH:mm:ss}  [%-4level] - %msg %n</pattern>
            </PatternLayout>
            <!-- set file size policy -->
            <Policies>
                <SizeBasedTriggeringPolicy size="20 MB" />
            </Policies>
            <DefaultRolloverStrategy max="10"/>
        </RollingFile>        
    </Appenders>
    <Loggers>
        <Logger name="connections" level="info" additivity="false">
            <appender-ref ref="connections" level="debug"/>
            <!--<appender-ref ref="console-log" level="debug"/>-->
        </Logger>                
        <Logger name="unexpected-events" level="info" additivity="false">
            <appender-ref ref="unexpected-events" level="debug"/>
            <!--<appender-ref ref="console-log" level="debug"/>-->
        </Logger>
        <Logger name="readouts" level="info" additivity="false">
            <appender-ref ref="readouts" level="debug"/>
            <!--<appender-ref ref="console-log" level="debug"/>-->
        </Logger>
        <Root level="error" additivity="false">
            <!--<AppenderRef ref="console-log"/>-->
        </Root>
    </Loggers>
</Configuration>

и вот как я использовал его в своем классе Java:

    import org.apache.logging.log4j.LogManager;
    import org.apache.logging.log4j.Logger;

    ......

    private static final Logger connectionsLog = LogManager.getLogger("connections");

    ....
     connectionsLog.info("device" + deviceNumber + " disconnected");

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Благодаря особой благодарности user944849 я понял, что проблема может быть связана с зависимостями maven.Затем я проверил предыдущую версию своего проекта (которая имеет правильное ведение журнала) и сравнил зависимости и обнаружил, что добавлена ​​библиотека "log4j-to-slf4j" (которая была добавлена ​​из-за импорта "org.springframework.boot").Затем сначала я исключаю его из зависимости в файле pom.xml, в результате он отлично работал в IDE NetBeans, но не из него.Затем я удалил эту зависимость из pom.xml и проблема была решена как прелесть!

0 голосов
/ 29 января 2019

Я видел такую ​​странность, когда оба commons-logging и jcl-over-slf4j вместе находятся на пути к классам.Исключение commons-logging из пути к классам Maven, где бы оно ни появлялось, часто помогает.

...