2017-08-03 14 views
1

私はlog4j2ライブラリを使ってロギングプロセスを管理しています。 AppendersとLoggerの設定を含むlog4j2.xmlという名前の設定ファイルを作成しました。その後、私は各クラスlog4j設定ファイルとjarアプリケーション

private static Logger my_logger = LogManager.getLogger(my_class); 

私はどこにでもconfファイルの名前を指定していないでロガーを定義したので、私は、ライブラリが暗黙のうちに取得し、それを読んでいると思います。

私はアプリケーションをjarファイルの形で提供する必要があるので、ユーザーが変更して設定できるように、設定ファイルを利用可能にする必要があります。

私の場合、私のアプリケーションで使用されるすべての構成ファイルを含むjarファイルのレベルにXXXフォルダを作成することをお勧めします。

私の質問は、jarファイルに含まれているxmlではなく、 "get XXX/log4j2.xml"というアプリにどのように言えるのですか?

+1

httpsを使用してください://をプロパティファイルを読むためには、あなたがこのような何かを行うことができますlogging.apache.org/log4j/2.x/manual/configuration.htmlは、Log4j2がどのように構成ファイルを探すか、コマンドラインからそのファイルを上書きする方法について説明しています。 –

答えて

-1

私は数週間前に同様の作業をしました。 私はそれをこのように解決:

  • ストアあなたのjarファイルのリソースフォルダ

  • 中にあなたlog4j2.xmlのテンプレートアプリケーションを実行するにlog4j2.xmlという名前のファイルをチェックしますjarファイルは1つが存在する場合

  • カレントディレクトリをファイル、いない場合は、あなたのロガー

  • を作成するためにそれを使用し、あなたのテンプレートをコピーあなたのjarファイルからjarファイルディレクトリに移動し、それを使ってあなたのロガーを作成します。

乾杯

1
設定ファイルをクラスパスに配置する必要があることを

、あなたはアプリが他の場所から設定を読みたいならば、あなたは

PropertyConfigurator.configure("/myPath/log4j.properties"); 
0

を使用するように指定する必要があります任意のフォルダを作成し、プロパティまたはXMLファイルをその中に入れます。

Properties objProperties = new Properties(); 
<your-class>.class.getClassLoader().getResource("folder/log4j.properties"); 
objProperties.load(isFile); 

か、また、この:Java Webアプリケーションの場合は

InputStream ist = Thread.currentThread().getContextClassLoader().getResourceAsStream("folder/log4j.properties"); 

link

関連する問題