2017-01-24 34 views
0

私はlog4jを初めて使用しています。私はアプリケーションをlog4j 1.2からlog4j2に変換しています。 log4j.propertiesファイルでは、次の設定が見つかりました。log4j 1.2構成をlog4j 2構成に変換する

############################################################# 
#  Default Logging Configuration File 
############################################################ 

############################################################ 
#  Global properties 
############################################################ 
handlers= java.util.logging.ConsoleHandler 
.level= WARNING 
############################################################ 
# Handler specific properties. 
# Describes specific configuration info for Handlers. 
############################################################ 

# default file output is in user's home directory. 
java.util.logging.FileHandler.pattern = %h/java%u.log 
java.util.logging.FileHandler.limit = 50000 
java.util.logging.FileHandler.count = 1 
java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter 

# Limit the message that are printed on the console to INFO and above. 
java.util.logging.ConsoleHandler.level = INFO 
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter 

############################################################ 
# Facility specific properties. 
# Provides extra control for each logger. 
############################################################ 

# For example, set the com.xyz.foo logger to only log SEVERE 
# messages: 
com.xyz.foo.level = SEVERE 

どのようにしてこの設定をlog4j2設定に変換できますか?

ありがとうございます!

+1

あなたは[this](https://logging.apache.org/log4j/2.x/manual/migration.html)を読んでいますか? –

+0

はい私はこのガイドを読みましたが、まだそれを変換することができませんでした。 –

+0

あなたのどの部分が失敗するのですか?私は覚えています、ある種のコンバータツールもあるはずです...ああ、いいえ。それはログバックだった。 – Fildor

答えて

0

Log4j2には、log4j-1.2-apiモジュール内に(実験的な)変換ツールがあります。

クラスはorg.apache.log4j.config.Log4j1ConfigurationConverterです。 log4j-1.2-apiモジュールに加えて、クラスパスにはJCommander(http://jcommander.org)が必要です。


あなたはコンソールとファイルアペンダを持つ例Log4j2構成を探しているなら、これを試してみてください。

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration status="INFO"> 
    <Appenders> 
     <Console name="Console" target="SYSTEM_OUT"> 
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" /> 
     </Console> 
     <File name="MyFile" fileName="all.log" append="false"> 
      <!-- alternatively use XmlLayout (requires Jackson, see documentation for dependencies) --> 
      <PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> 
     </File> 
    </Appenders> 
    <Loggers> 
     <Logger name="com.xyz.foo" level="warn" /> 
     <Root level="trace"> 
      <AppenderRef ref="Console" level="info" /> 
      <AppenderRef ref="MyFile"/> 
     </Root> 
    </Loggers> 
</Configuration> 

保存このlog4j2.xmlという名前のファイルへのクラスパスに入れて、あなたの応用。

+0

エラーの取得NoSuchMethodError:com.beust.jcommander.JCommander.setCaseSensitiveOptions(Z)V。また、log4j2で上記の設定と同等の構文を見つけることができません。 –

+0

JCommander 1.48以降が必要です。 –

+0

私は今クラスを実行することができましたが、出力はOK = 0、失敗= 0、合計= 0(Java org.apache.log4j.config.Log4j1ConfigurationConverter --recursion/home/myProject --in/home/myProject/logging .properties --verbose -o aaaaa.txt)。私は出力ファイルが生成されて表示されません。コードベース(https://fossies.org/linux/misc/apache-log4j-2.7-src.tar.gz/apache-log4j-2.7-src/log4j-1.2-api/src/main/java/org)からも/apache/log4j/config/Log4j1ConfigurationParser.java)私はこのツールがjava.util.logging関連の設定を変換しないと感じます。 –

関連する問題