Java журналы веб-приложения catalina не записываются в файл журнала при работе в Eclipse - PullRequest
0 голосов
/ 07 мая 2020

У меня есть веб-приложение Java, которое я запускаю в Eclipse для своей среды разработки. Я использую логбэк для входа в специальный файл. Проблема в том, что некоторые операторы журналирования, в частности те, которые обычно от go до catalina.out , не попадают в мой файл журнала. Они отображаются в моей консоли Eclipse, но не в моем пользовательском файле журнала регистрации.

Когда я запускаю одно и то же приложение в tomcat вне Eclipse (через startup.bat ), эти операторы журнала catalina записываются в файл catalina.out . Но при запуске в Eclipse не создается catalina.out , поэтому эти журналы не сохраняются.

Вот мой logback-test. xml:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- RollingFileAppender that rolls based on size and time -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${catalina.base}/logs/mylog.log</file>
        <encoder>
            <pattern>%date [%thread] %-5level %logger{10} [%file:%line] - %msg%n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- rollover daily -->
            <fileNamePattern>${catalina.base}/logs/mylog.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <!-- each file at most 20MB; keep 10 files worth of history, max total 20GB -->
            <maxFileSize>20MB</maxFileSize>
            <maxHistory>10</maxHistory>
            <totalSizeCap>20GB</totalSizeCap>
        </rollingPolicy>
    </appender>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>logback-test %date [%thread] %highlight(%-5level) %logger{10} - %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="STDERR" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>logback-test %date [%thread] %highlight(%-5level) %logger{10} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- set logging levels for specific packages -->        
    <logger name="org.apache.catalina.startup" level="INFO"/>

    <!-- set level of the root logger and associate it with both appenders -->
    <root level="INFO">
        <appender-ref ref="FILE"/>
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="STDERR"/>
    </root>
</configuration>

1 Ответ

0 голосов
/ 10 мая 2020

Этот ответ разрешил мой вопрос: { ссылка }

По-видимому, если при запуске приложения на tomcat через Eclipse вы хотите записать журналы catalina в файл, вам нужно чтобы указать, что через Eclipse tomcat конфигурация запуска настройки.

Я думаю, в каком-то смысле это имеет смысл, поскольку журналы catalina, возможно, не относятся к приложению c, поэтому, возможно, за пределами области добавлений логбэка. Но, с другой стороны, разве они не должны записываться в файл журнала по умолчанию, как если бы вы запускали свой сервер tomcat вне Eclipse?

...