2017-05-04 23 views
2

log4jを使用してコンソールとファイルの両方にログを記録しています。それはちょうど、コンソールで動作しますが、ファイルを使用して、は、ファイルがlog4jはファイルのログを記録しません

これは私の設定ファイルで作成されているとは考えられない。

name=PropertiesConfig 
property.filename = logs 
appenders = console, file 

appender.console.type = Console 
appender.console.name = STDOUT 
appender.console.layout.type = PatternLayout 
appender.console.layout.pattern = [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n 

appender.file.type = File 
appender.file.name = LOGFILE 
appender.file.fileName=${filename}/my_server_logs.log 
appender.file.layout.type=PatternLayout 
appender.file.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n 

loggers=file 
logger.file.name=guru.springframework.blog.log4j2properties 
logger.file.level = debug 
logger.file.appenderRefs = file 
logger.file.appenderRef.file.ref = LOGFILE 

rootLogger.level = debug 
rootLogger.appenderRefs = file, stdout 
rootLogger.appenderRef.stdout.ref = STDOUT 

私は何をしないのですしてくださいましたか?

答えて

2

ファイルアペンダーとルートロガーの間の接続がありません。あなたの特性の下部に次の行を追加します。 ファイル:予想通り

rootLogger.appenderRef.file.ref = LOGFILE 

は、それが動作します。

+0

そうですね!多くのありがとう –

+0

あなたは私の友人を歓迎しています:) – VivekRatanSinha

0

$ {filename}という変数がproperty.filenameの値で置き換えられると思います。

$ {filename}をハードパスに置き換えて再試行できますか(Windowsの場合は「C:\」、UNIXの場合は「/ tmp /」など)。

+0

'$ {filename}'は実際には 'property.filename'に置き換えられています。私が質問したようにファイルが作成されています –