我正在使用Play框架,其中logback是默認記錄器引擎。我想在兩個單獨的文件中記錄兩個不同的活動(Log in
和Transaction
),以便於跟蹤。爲此,我有兩個appender和兩個伐木工人。每個記錄器都標有特定的appender。logback中的每個記錄器的特定appender的多個記錄器
<appender name="TRANSACTION" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${application.home}/logs/transaction/transaction-%d{yyyy-MM-dd HH}.log</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%message%n</pattern>
</encoder>
</appender>
<appender name="LOGIN" class="ch.qos.logback.core.FileAppender">
<file>${application.home}/logs/log-in-record.log</file>
<encoder>
<pattern>%date - [%level] - from %logger in %thread %n%message%n%xException%n</pattern>
</encoder>
</appender>
<logger name="transaction" level="INFO">
<appender-ref ref="TRANSACTION" />
</logger>
<logger name="log-in" level="INFO">
<appender-ref ref="LOGIN" />
</logger>
我想通過交易記錄交易活動日誌如play.Logger.of("transaction").info("Test Transaction Log\r\nHere is another line");
並登入或登錄日誌如play.Logger.of("log-in").info("user X has logged in ...");
註冊相關的活動,但它不工作。有任何想法嗎?
編輯
通過「不工作」我的意思是相同的日誌被附加到這兩個記錄器,而不是具體到特定的日誌。例如。如果我從我的Play代碼撥打play.Logger.of("log-in").info("user X has logged in ...");
,則交易交易和登錄記錄器正在記錄用戶X已登錄...爲兩個不同的文件。
你是什麼意思正是通過「不工作」?根本沒有日誌消息? –
@BalázsMáriaNémeth:我的編輯低於原文。感謝您的高效查詢。 –
我在看https://github.com/playframework/playframework/blob/master/framework/src/play/src/main/scala/play/api/Logger.scala,但我找不到答案。如果您在此沒有收到任何回覆,請嘗試使用Google Play組織列表。 –