③ 設定方法を知る
大きな構成は3つで「Loggerさん」「Appenderさん」「Layoutさん」
Logger は Log4J パッケージの中心クラスで、ロギングを行う部分をグループ化し、必要なグループのログだけを出力したり、カテゴリーに優先順位をつけることにより様々な出力方法を指定することができます。
Appender はログの出力先を指定するものです。Appender で設定できる出力先は、冒頭でも述べたように、ファイル、OutputStream、Java.io.Writer、リモート Log4J サーバ、リモート Unix Syslog デーモン、Windows NT イベントログなどです。
Layout はその名の通り、ログの出力フォーマットを指定するものです。単純なテキスト出力、ユーザが指定したレイアウト、HTML のテーブルレイアウトなどを指定することができます。
1. Log4J の基本 | TECHSCORE(テックスコア)
Logger
ここに「Loggerさんの名前」「ログレベル」「Appenderさんの名前」を設定します。
# RootLogger
log4j.rootLogger={ログレベル},{Appenderさんの名前}
# Logger
log4j.logger.{Loggerさんの名前}={ログ出力レベル|INHERITED},{Appenderさんの名前}
RootLoggerのログレベルを継承したいときは、「INHERITED」と書きます。
↓Loggerさん
This is the central class in the log4j package. Most logging operations, except configuration, are done through this class.
Logger (Apache Log4j 1.2.17 API)
Appender
カンマ区切りで複数指定できます。複数指定できるのでログを、コンソールとファイルに同時に出力することが可能です。
gungnir-odin.hatenablog.com
Appener
Appenderさんの「クラス」「オプション」「使うLayoutのクラス」の設定をします。
# 使用するAPPENDERの設定
log4j.appender.{Appenderさんの名前}={Appenderさんのクラス}
# オプションの設定
log4j.appender.{Appenderさんの名前}.{オプション}={オプションの設定値}
log4j.appender.{Appenderさんの名前}.layout={使うLayoutさんのクラス}
↓{Appenderさんのクラス}は「All Known Implementing Classes:」から選びます。
Interface Appender
All Known Implementing Classes:
AppenderSkeleton, AsyncAppender, ConsoleAppender, DailyRollingFileAppender, ExternallyRolledFileAppender, FileAppender, JDBCAppender, JMSAppender, LF5Appender, NTEventLogAppender, NullAppender, RewriteAppender, RollingFileAppender, SMTPAppender, SocketAppender, SocketHubAppender, SyslogAppender, TelnetAppender, WriterAppender
Implement this interface for your own strategies for outputting log statements.
Appender (Apache Log4j 1.2.17 API)
org.apache.log4j.net.SyslogAppender であることからも判るように、実際にはネットワーク系の Appender である。つまり、root でこれを使ったアプリを動かしても、ローカルマシンの syslog で取り扱って貰えるわけではない、ということを最初に言っておこう。
www.nurs.or.jp
log4j.category.com.fc2web.himtodo.test=DEBUG, TEST
log4j.appender.TEST=org.apache.log4j.DailyRollingFileAppender
log4j.appender.TEST.File=C:/logs/test.log
log4j.appender.TEST.DatePattern='.'yyyy-MM-dd
log4j.appender.TEST.layout=org.apache.log4j.PatternLayout
log4j.appender.TEST.layout.conversionPattern=%d{yyyy/MM/dd HH:mm:ss.SSS} [%p] - %m%n
↓{使うLayoutさんのクラス}は「Direct Known Subclasses:」から選ぶか実装します。
Class Layout
Direct Known Subclasses:
DateLayout, EnhancedPatternLayout, HTMLLayout, PatternLayout, SimpleLayout, XMLLayout
Extend this abstract class to create your own log layout format.
Layout (Apache Log4j 1.2.17 API)
他は見たら調べよう・・・覚えられないし・・・。