2017-04-26 5 views
0

私はlog4jを統合したJavaアプリケーションを使っています。新しい開発のためには、ファイルを生成する代わりに、アプリケーションWebからアクセスする国ごとに2つずつ生成する必要があります。どちらのアプリケーションも、アプリケーション全体で同じログレコードを持つことになります。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

返信いただきありがとうございます。 私はあなたが私を間違って説明すると思います。私が言いたいのは、たとえメッセージとパッケージが同じであっても、あなたは国に応じてファイルまたは別のもので私にあなたが書く必要があるということです。つまり、ユーザーがスペイン語を選択した場合、「starting application」というログのメッセージが想像されます。country2.logに書き込むイギリスを選択すると、country1.logファイルに書き込まれます。 –

+0

あなたはこのようなことをしたいですか?プロパティ置換セクションを参照)? http://logging.apache.org/log4j/2.x/manual/configuration.html#PropertySubstitution – jeffkempf

+0

はい、ありがとうございます。それは私が必要としたものです –

関連する問題