2017-12-12 5 views
0

私はJavaアプリケーションを持っています。プロジェクトを.warファイルとしてエクスポートし、ドッカーコンテナを作成して実行します。ドッカーのボリュームにjava.util.loggingの出力を保存するには

構造は次のとおりです。ロギングのために私はjavaからライブラリを使用します。

private static final Logger logger = Logger.getLogger(BusController.class.getName()); 

と私は例えば使用出力のために:私は私のdockerfileを起動すると

logger.warning("User "+XYZ+" not found!"); 

、私はのための余分なボリュームをマウント私は私の変数を定義し、私のアプリケーションで

import java.util.logging.Logger; 

ログ。ドッキングウィンドウコンテナが正常に起動した後

REGISTRY=xxxxx.net 
VERSION=latest 
IMAGE=busMicroservice 
SERVICE=busmicroservice 
LOCAL_DATA_PATH=/opt/docker-busmicroservice/data 

docker run -p xxxx:xxxxx -d -v $LOCAL_DATA_PATH:/logs --name $SERVICE --hostname $SERVICE $REGISTRY/$IMAGE:$VERSION 

、私は

docker inspect busmicroservice 

と私のボリュームを確認することができますし、私のボリュームが含まれていることを、見ることができます。 しかし、今私は何をしなければなりません、ログは "/ logs"フォルダに保存されますか?私はJavaアプリケーションで何を実装する必要がありますか?

ありがとうございます!

--------- EDIT ----------

私は追加の質問のために今第二のスレッドを持っている: How to save logfiles into a docker volume

+1

[チュートリアル](http://tutorials.jenkov.com/java-logging/index.html)を読んでいますか?短編小説 - ロギング設定ファイルを作成し、そのファイルにアプリケーションを向ける。 –

+0

はい、私は.txtファイルへのログインを保存する方法を知っています。しかし、$ LOCAL_DATA_PATH:/ logsを指す方法は?それ以外の場合は、Windowsマシンにローカルに保存します。 – InfoEngi

+0

ログを '/ logs'に書き込みます。私は本当にあなたの質問を理解していない。 –

答えて

1

あなたがlog4jのを使用する必要がありますファイルアペンダ。 編集log4j.properties

log4j.appender.default.file=org.apache.log4j.FileAppender 
log4j.appender.default.file.append=true 
log4j.appender.default.file.file=/log/logfile.log 
log4j.appender.default.file.threshold=INFO 
log4j.appender.default.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.default.file.layout.ConversionPattern=%-5p %c: %m%n 

アプリケーションは下記参照できるJavaアプリケーションとの完全なサンプルについて/log/logfile.logファイル

にログイン書きます開始し

https://dzone.com/tutorials/java/log4j/log4j-file-appender-example-1.html

+0

ありがとうございます。私はあなたのソリューションを試して、部分的にそれは働いたが、今私は自分のコードを再構成したため、これのために私は新しい問題がある。 – InfoEngi

関連する問題