2017-04-26 103 views
0

我正在使用集成了log4j的Java應用程序。對於一個新的開發,我會需要,而不是生成一個文件,我將生成兩個,每個國家從應用程序網頁訪問一個。兩者都具有在我的應用程序中找到的相同日誌記錄。Log4j生成具有相同內容的不同文件

我配置使用.xml文件的配置:

<!-- Appenders --> 
 
    \t <appender name="console" class="org.apache.log4j.ConsoleAppender"> 
 
    \t \t <layout class="org.apache.log4j.PatternLayout"> 
 
    \t \t \t <param name="ConversionPattern" 
 
    \t \t \t \t value="jeveris: %d{dd MMM yyyy HH:mm:ss,SSS} %-5p %c - %m%n" /> 
 
    \t \t </layout> 
 
    \t </appender> 
 

 
    \t 
 
    \t <appender name="One-Console" class="org.apache.log4j.RollingFileAppender"> 
 
    \t \t <param name="File" value="Console.log" /> 
 
    \t \t <param name="Append" value="true" /> 
 
    \t \t <param name="MaxFileSize" value="2MB" /> 
 
    \t \t <layout class="org.apache.log4j.PatternLayout"> 
 
    \t \t \t <param name="ConversionPattern" 
 
    \t \t \t \t value="%d{dd MMM yyyy HH:mm:ss,SSS} %-5p %c - %m%n" /> 
 
    \t \t </layout> 
 
    \t </appender> 
 

 

 
    \t 
 
    \t <category name="com.example.one.web"> 
 
    \t \t <level value="debug" /> 
 
    \t \t <appender-ref ref="One-Console" /> 
 
    \t </category> 
 
    \t 
 
    \t 
 
    \t <root> 
 
    \t  <appender-ref ref="console" /> 
 
    \t \t <level value="debug" /> 
 
    \t </root> 
 
    </log4j:configuration>

有人能指導我,告訴我,如果有可能,或者幫助我找到解決辦法?

謝謝。

回答

0

如果你想2+日誌將打印相同內容的文件,那麼你可以罰款2個不同的文件在你的標籤,像這樣:

<configuration status="OFF"> 
<Properties> 
    <Property name="log-path">/your/file/path/</Property> 
    <Property name="log-country-name1">Country1</Property> 
    <Property name="log-country-name2">Country2</Property> 
    <!-- more if necessary --> 
    <Property name="log-pattern">%d{ISO8601} %-5p [%t|%c{1}] %m\n</Property> 
    <Property name="rollover-strategy-max">5</Property> 
    <Property name="rolling-size-based">10 MB</Property> 
</Properties> 
<appenders> 

    <!--uncomment following if want to print to console as well --> 
    <!-- <Console name="Console" target="SYSTEM_OUT"> 
     <PatternLayout> 
      <pattern>${log-pattern}</pattern> 
     </PatternLayout> 
    </Console> --> 

<RollingFile name="INFO" fileName="${log-path}/${log-country-name1}-logger.log" filePattern="${log-path}/${log-project-name}-debug-%d-%i.log.zip"> 
    <PatternLayout> 
     <pattern>${log-pattern}</pattern> 
    </PatternLayout> 
    <Policies> 
     <SizeBasedTriggeringPolicy size="${rolling-size-based}" /> 
    </Policies> 
    <DefaultRolloverStrategy max="${rollover-strategy-max}" /> 
</RollingFile> 

<RollingFile name="INFO" fileName="${log-path}/UpdaterLocal-logger.log" filePattern="${log-path}/${log-country-name2}-debug-%d-%i.log.zip"> 
    <PatternLayout> 
     <pattern>${log-pattern}</pattern> 
    </PatternLayout> 
    <Policies> 
     <SizeBasedTriggeringPolicy size="${rolling-size-based}" /> 
    </Policies> 
    <DefaultRolloverStrategy max="${rollover-strategy-max}" /> 
</RollingFile> 

</appenders> 
<Loggers> 
    <logger name="io.switchfour" level="trace" additivity="false"> 
     <AppenderRef ref="INFO" level="info" /> 
    </logger> 
</Loggers> 

以上將創建/你/文件/path/Country1-logger.log和/your/file/path/Country2-logger.log,並將兩個文件都寫入INFO或更高的所有條目。你的日誌文件應該是相同的。

+0

首先感謝您的回覆。 我想你解釋我錯了。我想說的是,即使信息和包裹是相同的,我需要你根據國家以文件或其他方式給我寫信。也就是說,如果用戶選擇西班牙語,它會寫入文件country1.log中,如果它選擇了英格蘭,它會在country2.log中寫入,我們想象一條日誌消息「正在啓動應用程序」消息 –

+0

您是否想要這樣做(參見Property Substitution部分)? http://logging.apache.org/log4j/2.x/manual/configuration.html#PropertySubstitution – jeffkempf

+0

是的,非常感謝你的信息。這就是我需要的 –

相關問題