- PR -

strutsとlog4jについて

1
投稿者投稿内容
ブル
会議室デビュー日: 2004/06/25
投稿数: 16
投稿日時: 2004-06-25 18:26
strutsを使用して開発しているのですが、ログを出力するときに
log4jを使ってみたいと思い、設定してみたのですが出力された
ログをみると、struts内部の情報も出力されてしまいます。

strutsのログを出力しないで、アプリケショーンのみのログの
出力はどうやって行うのでしょうか?

----- こんな感じで出力されます--------------
[2004-06-25 17:08:02,469][org.apache.struts.util.PropertyMessageResources]Initializing, config='org.apache.struts.util.LocalStrings', returnNull=true
[2004-06-25 17:08:02,469][org.apache.struts.util.PropertyMessageResources]Initializing, config='org.apache.struts.action.ActionResources', returnNull=true
[2004-06-25 17:08:03,250][org.apache.struts.util.PropertyMessageResources]Initializing, config='gourmet.ApplicationResources', returnNull=true
[2004-06-25 17:40:12,334][org.apache.struts.util.PropertyMessageResources]Initializing, config='org.apache.struts.util.LocalStrings', returnNull=true
[2004-06-25 17:40:12,334][org.apache.struts.util.PropertyMessageResources]Initializing, config='org.apache.struts.action.ActionResources', returnNull=true
[2004-06-25 17:40:13,136][org.apache.struts.util.PropertyMessageResources]Initializing, config='gourmet.ApplicationResources', returnNull=true
[2004-06-25 17:40:32,173][org.apache.struts.util.PropertyMessageResources]Initializing, config='org.apache.struts.util.LocalStrings', returnNull=true


[ メッセージ編集済み 編集者: ブル 編集日時 2004-06-25 18:42 ]
nori
常連さん
会議室デビュー日: 2003/12/16
投稿数: 34
お住まい・勤務地: 新幹線線路の隣
投稿日時: 2004-06-25 18:51
こんにちは。

他の環境はわかりませんが、私もstrutsとLog4jを使ってプログラミング
をしたことがあります。

log4jのプロパティファイルで設定できますよ。
ファイルは作成していますか?

プロパティファイルが無い場合は、プログラムで制御できたと思います。
ブル
会議室デビュー日: 2004/06/25
投稿数: 16
投稿日時: 2004-06-25 18:55
プロパティファイルは作成しまいした。

以下の通りです。
# log.properties
#-----------------------------------------------------------------------------
# 対象パッケージ
#-----------------------------------------------------------------------------
log4j.rootCategory=INFO,log

#-----------------------------------------------------------------------------
# appender
#-----------------------------------------------------------------------------
#---巡回ファイル---
log4j.appender.log=org.apache.log4j.RollingFileAppender
#---ログファイル名---
log4j.appender.log.File=trace20040625.log
#---ひとつのログの最大サイズ---
log4j.appender.log.MaxFileSize=1024KB
#---n世代ログを残す---
log4j.appender.log.MaxBackupIndex=100
#---レイアウト名---
log4j.appender.log.layout=org.apache.log4j.PatternLayout
#---ログ出力レイアウト---
log4j.appender.log.layout.ConversionPattern=[%d][%-5c]%m%n
nori
常連さん
会議室デビュー日: 2003/12/16
投稿数: 34
お住まい・勤務地: 新幹線線路の隣
投稿日時: 2004-06-25 19:16
私も同じ事やりましたよ

対象パッケージが「rootCategory」になっている為だと
思われます。
何処に配置してありますか?

パッケージを指定してあげてもOKですよ。
nori
常連さん
会議室デビュー日: 2003/12/16
投稿数: 34
お住まい・勤務地: 新幹線線路の隣
投稿日時: 2004-06-25 19:31
これが参考になるかもしれません。

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=4476&forum=12

ブル
会議室デビュー日: 2004/06/25
投稿数: 16
投稿日時: 2004-06-28 10:54
ありがとうございます。

log4j.rootCategory=INFO,log
log4j.category.org.apache.commons=WARN
log4j.category.org.apache.struts=WARN

を指定することにより、出力を抑えることが
できました。

カクトウ
会議室デビュー日: 2005/07/07
投稿数: 1
投稿日時: 2005-07-07 16:59
上記のやり方で試しましたが、なかなかできない。rootLoggerに設定のlevelに関係なくて、appenderのlevel条件にあったら、strutsのDEBUG情報などが全部出てしまいます。
結局、巨大なログファイルが作成されました。
一日の試した結果は
@rootLoggerにappenderを設定しない
A自分のクラスのloggerにappenderを設定します。
そうすると、自分のAPのログだけ、出力されました。

log4j.rootLogger=OFF
log4j.logger.jp.co.xxxx=DEBUG,fileInfo,fileError,fileDebug

log4j.appender.fileInfo=org.apache.log4j.DailyRollingFileAppender
log4j.appender.fileInfo.File=D:/mylog.log
log4j.appender.fileInfo.DatePattern='.'yyyy-MM-dd
log4j.appender.fileInfo.Append=true
log4j.appender.fileInfo.layout=org.apache.log4j.PatternLayout
log4j.appender.fileInfo.layout.ConversionPattern=%d %5p %c{1} - (%x) %m%n
log4j.appender.fileInfo.Threshold=INFO

log4j.appender.fileError=org.apache.log4j.DailyRollingFileAppender
log4j.appender.fileError.File=D:/mylogError.log
log4j.appender.fileError.DatePattern='.'yyyy-MM-dd
log4j.appender.fileError.Append=true
log4j.appender.fileError.layout=org.apache.log4j.PatternLayout
log4j.appender.fileError.layout.ConversionPattern=%d %5p %c{1} - (%x)%m%n
log4j.appender.fileError.Threshold=ERROR

log4j.appender.fileDebug=org.apache.log4j.DailyRollingFileAppender
log4j.appender.fileDebug.File=D:/mylogDebug.log
log4j.appender.fileDebug.DatePattern='.'yyyy-MM-dd
log4j.appender.fileDebug.Append=true
log4j.appender.fileDebug.layout=org.apache.log4j.PatternLayout
log4j.appender.fileDebug.layout.ConversionPattern=%d %5p %c{1} - (%x)%m%n
log4j.appender.fileDebug.Threshold=DEBUG

甘くできた言っても、なぜ
log4j.logger.org.apache.commons=WARN
log4j.logger.org.apache.struts=WARN
が無効になったのは、よく分からない。

1

スキルアップ/キャリアアップ(JOB@IT)