Po prostu dodaj kolejnego loggera i aplikanta. Dla przykładu użyłem następujące logback.xml
<property name="LOGS_HOME" value="/var/applications/myProject/applogs/" />
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>
%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
</Pattern>
</layout>
</appender>
<appender name="FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOGS_HOME}myProject_log.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>
%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>${LOGS_HOME}myProject_log.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
<appender name="FILE-AUDIT" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOGS_HOME}myProject_audit.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>
%d{yyyy-MM-dd HH:mm:ss};%msg%n
</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>${LOGS_HOME}myProject_audit.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
<logger name="com.myCompany.myProject" level="info" additivity="false">
<appender-ref ref="FILE" />
<appender-ref ref="STDOUT" />
</logger>
<logger name="audit-log" level="info" additivity="false">
<appender-ref ref="FILE-AUDIT" />
<appender-ref ref="STDOUT" />
</logger>
<root level="error">
<appender-ref ref="FILE" />
<appender-ref ref="STDOUT" />
</root>
W kodzie można uzyskać dostęp do rejestratora z:
private static Logger audit = LoggerFactory.getLogger("audit-log");
Pozwoli to uzyskać audit-log
rejestrator i użyć FILE-AUDIT
aplikant.
W „standart” appender jest używany z dowolnej klasy, która jest w określonym opakowaniu:
private static Logger logger = LoggerFactory.getLogger(MyApplication.class);
ten użyje <logger name="com.myCompany.myProject" level="info" additivity="false">
i obviosly appender pliku.
dziękuję, ale wypróbowałem twój kod, ale nie widzę nowego pliku dziennika kontroli utworzonego w dowolnym miejscu. Może muszę zdefiniować coś takiego w nieruchomościach? logging.config = ścieżka – Spring
@Spring Spójrz na ' ' Plik powinien znajdować się w '/ var/applications/myProject/applogs/myProject_audit.log' lub dowolną ścieżką, którą ustawisz 'KATALOG_GŁÓWNY'. Sprawdź również, czy aplikacja ma prawa do zapisu w katalogu. –
thx ale nadal nie działa, sprawdziłem prawa (ls -la) wygląda tak samo jak mój inny domyślny plik dziennika – Spring