約 5,367,012 件
https://w.atwiki.jp/taichik15/pages/18.html
Log4j log4j.xml クラスパスの通ったとことにlog4j.xmlを作成 ?xml version="1.0" encoding="UTF-8" ? !DOCTYPE log4j configuration SYSTEM "log4j.dtd" log4j configuration xmlns log4j= http //jakarta.apache.org/log4j/ appender name="FILE" class="org.apache.log4j.DailyRollingFileAppender" param name="File" value="log/sportsbook.log" / param name="DatePattern" value=" . yyyy-MM-dd"/ layout class="org.apache.log4j.PatternLayout" param name="ConversionPattern" value="%d{yyyy-MM-dd HH mm ss} %p %r %c %m%n" / /layout /appender root priority value="info" / appender-ref ref="FILE" / /root /log4j configuration サンプル 簡単なサンプル public static void main(final String[] args) throws Exception { Logger logger = Logger.getLogger(ArbitrageFinder.class); logger.debug("debug"); logger.info("info"); logger.warn("warn"); logger.error("error"); }
https://w.atwiki.jp/yasrun/pages/46.html
Log4J 例外発生時、スタックトレースもログに出させる try { ... } catch(Exception e) { logger.error(e); } とやってもスタックトレースは出ない。 logger.error(e.getMessage(), e); というように第一引数がString,第二引数がThrowableになっているやつを利用すれば出る。 DailyRollingFileAppenderのログ消失の件 DailyRollingFileAppenderで、日付ファイルに更新するときに失敗してログが消失する罠は、 最新版(2010年4月リリース)の1.2.16で修正された。らしい。 log4j.xml サンプル ?xml version="1.0" encoding="UTF-8" ? !DOCTYPE log4j configuration SYSTEM "log4j.dtd" log4j configuration xmlns log4j= http //jakarta.apache.org/log4j/ !-- *** Appender *** -- !-- コンソール -- appender name="STDOUT" class="org.apache.log4j.ConsoleAppender" param name="threshold" value="DEBUG"/ layout class="org.apache.log4j.PatternLayout" param name="ConversionPattern" value="%d %-5p [%t] (%F %L) - %m%n"/ /layout /appender !-- ファイル(ファイル名日替わり) -- appender name="DAILY" class="org.apache.log4j.DailyRollingFileAppender" param name="file" value="C \\temp\daily.log" / param name="threshold" value="DEBUG"/ param name="append" value="true" / layout class="org.apache.log4j.PatternLayout" param name="ConversionPattern" value="%d %-5p (%F %L) - %m%n"/ /layout /appender !-- *** Category *** -- category name="test.test.test" appender-ref ref="DAILY" / /category root appender-ref ref="STDOUT" / /root /log4j configuration .
https://w.atwiki.jp/kattsu/pages/25.html
参考サイト http //www.javaroad.jp/opensource/js_log4j2.htm ここはlog4j.xmlのサンプル置き場です ?xml version="1.0" encoding="UTF-8" ? !DOCTYPE log4j configuration SYSTEM "log4j.dtd" log4j configuration xmlns log4j="http //jakarta.apache.org/log4j/" appender name="stdout" class="org.apache.log4j.ConsoleAppender" param name="Target" value="System.out" / layout class="org.apache.log4j.PatternLayout" param name="ConversionPattern" value="%d %5p %c{1} - %m%n" / /layout /appender appender name="file" class="org.apache.log4j.FileAppender" param name="File" value="/sample/logs/error.log" / param name="Threshold" value="debug" / rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy" param name="FileNamePattern" value="rolling.%d{yyyy-MM-dd}.log" / /rollingPolicy param name="Append" value="true" / layout class="org.apache.log4j.PatternLayout" param name="ConversionPattern" value="%d %5p %c{1} - %m%n" / /layout /appender appender name="err" class="org.apache.log4j.FileAppender" param name="File" value="/sample/logs/error.log" / param name="Threshold" value="ERROR" / rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy" param name="FileNamePattern" value="rolling.%d{yyyy-MM-dd}.log" / /rollingPolicy param name="Append" value="true" / layout class="org.apache.log4j.PatternLayout" param name="ConversionPattern" value="%d %5p %c{1} - %m%n" / /layout /appender category name="sample" appender-ref ref="file" / /category root appender-ref ref="err" / /root /log4j configuration
https://w.atwiki.jp/honeybe/pages/42.html
log4j 同一カテゴリのログに対して、levelに応じて別のappenderを適用する。 カテゴリを複数記述できないため、以下のようにする。 appenderを複数適用する。 appenderにてlevelに対してのfilterを設定する。 (filterはxmlでの定義でしか使用できない) ?xml version="1.0" encoding="UTF-8" ? !DOCTYPE log4j configuration SYSTEM "log4j.dtd" log4j configuration xmlns log4j="http //jakarta.apache.org/log4j/" appender name="appender_1" class="org.apache.log4j.ConsoleAppender" filter class="org.apache.log4j.varia.LevelMatchFilter" param name="LevelToMatch" value="INFO"/ param name="AcceptOnMatch" value="true"/ /filter filter class="org.apache.log4j.varia.DenyAllFilter"/ /appender appender name="appender_2" class="org.apache.log4j.FileAppdender" param name="File" value="log.txt" / param name="Append" value="true" / filter class="org.apache.log4j.varia.LevelMatchFilter" param name="LevelToMatch" value="ERROR"/ param name="AcceptOnMatch" value="true"/ /filter filter class="org.apache.log4j.varia.DenyAllFilter"/ /appender category name="org.example" priority value="INFO" / appender-ref ref="appender_1" / appender-ref ref="appender_2" / /category /log4j configuration INFO以上のログを出力する。 Filter設定により、levelがINFOならばConsoleAppenderが有効になる。 Filter設定により、levelがERRORならばFileAppenderが有効になる。 Filter設定により、それ以外はすべて無効化される。(DenyAllFilterがそれを実現している) 詳しい解説は下記参照。 http //www.nurs.or.jp/~sug/soft/log4j/log4j13.htm
https://w.atwiki.jp/naobe/pages/72.html
OpenSourceに戻る Log4j.xmlの設定 1.3より前 ?xml version="1.0" encoding="UTF-8" ? !DOCTYPE log4j configuration SYSTEM "log4j.dtd" log4j configuration xmlns log4j='http //jakarta.apache.org/log4j/' !--テキストにログを出力するConsoleAppenderをSTDOUTとして定義 -- appender name="STDOUT" class="org.apache.log4j.ConsoleAppender" !-- 優先順位閾値 -- param name="threshold" value="WARN" / !-- ログの出力形式を指定 -- layout class="org.apache.log4j.PatternLayout" param name="ConversionPattern" value="%d %-5p [%t] (%F %L) - %m%n" / /layout /appender !--決められた期間でログを別ファイルに切り替えて書き込む DailyRollingFileAppenderをDAILYとして定義 -- appender name="DAILY" class="org.apache.log4j.DailyRollingFileAppender" !-- ログのファイル名 -- param name="file" value="daily-log" / !-- 優先順位閾値 カテゴリでdebugを指定していても、info以上のみログ出力する -- param name="threshold" value="INFO" / !-- 日付が変わる瞬間daily-log-2002-06-23のような形式で 現在のログがリネーム -- !-- すでにログが存在する場合、ファイルにログを追加 -- param name="append" value="true" / !-- ログの出力形式を指定 -- layout class="org.apache.log4j.PatternLayout" param name="ConversionPattern" value="'%c', '%p', '%d', '%m'%n" / /layout /appender !-- カテゴリosbook.log2に対してコンソールにinfo以上のログを出力 -- category name="osbook.log2" priority value="info" / appender-ref ref="STDOUT" / /category !-- カテゴリossbook.log2.MyClass2に対してDAILYアペンダにdebug以上のログを出力 -- category name="osbook.log2.MyClass2" priority value="debug" / appender-ref ref="DAILY" / /category !-- デフォルトのログ設定 -- root appender-ref ref="STDOUT" / appender-ref ref="DAILY" / /root /log4j configuration 設定ファイルの読み込み 1.3より前 ファイルの基点は、クラスパス URL url = Loader.getResource("resource/log4j.xml"); DOMConfigurator.configure(url); 優先度 No. 優先度 説明 1 fatal システムがこれ以上動作できない致命的なエラーが発生した場合 2 error 予期せぬ動作などにより、正しく処理できない場合 3 warn なんらかの問題が発生したが、動作には影響がない場合 4 info 設定ファイルを読み込んだときの設定情報、システム開始/停止時の状態出力など 5 debug デバッグ情報。例えば、外部モジュールから呼ばれるメソッドの入出力情報など 6 trace 詳細なデバッグ情報。モジュール内部の情報、ループの繰り返しで大量に出力される情報など レイアウト 変数 説明 %c カテゴリ名。%c{n}で表示するカテゴリ階層を指定する。例えば、a.b.cというカテゴリに対して、%c{2}はb.cを出力する %d 日付。HHを時間、mmを分、ssを秒、SSSをミリ秒としたとき、%d{HH mm ss,SSS}, %d{dd MMM yyyy HH mm ss,SSS}という形式で指定できる。また%d{ISO8601},%d{ABSOLUTE}という形式でも指定可能 %L 行番号 %m メッセージ %M メソッド名 %n 改行。ログメッセージの最後に挿入 %p 優先度(fatal/error/warn/info/debug) %r アプリケーションの実行開始からの経過時間 %t スレッド名。マルチスレッドのプログラムの場合、利用を勧める
https://w.atwiki.jp/shin-b/pages/23.html
設定ファイルのデフォルトファイル名を変更する方法 System.setPropertyでファイル名を指定するとよい System.setProperty("log4j.configuration", "xxxxx-log4j.properties"); ↑ファイル名
https://w.atwiki.jp/okzmemorandum/pages/21.html
log4jの出力先を動的に変更する
https://w.atwiki.jp/keisks/pages/443.html
Maven+Eclipseで確認。 pom.xmlに追加する(https //logging.apache.org/log4j/2.x/maven-artifacts.html) log4j2.xmlをsrc/java/resource/に配置する。基本的な設定としては ?xml version="1.0" encoding="UTF-8"? configuration status="OFF" Appenders Console name="Console" target="SYSTEM_ERR" // あるいはSYSTEM_OUT PatternLayout pattern="%d{DEFAULT} | [%t] | %-5level | %c{36} | %msg%n"/ /Console File name="File" fileName="logs/nlp4j.log" // 出力先 PatternLayout pattern="%d{yyyy-MM-dd HH mm ss.SSS} | [%t] | %-5level | %c{36} | %msg%n"/ /File /Appenders Loggers Root level="error" // デフォルトの設定 AppenderRef ref="Console"/ // どこに出すか /Root Logger name="com.keisks.nlp4j" level="trace" additivity="false" // パッケージごとの追加設定(上書きされる) AppenderRef ref="Console"/ AppenderRef ref="File"/ // ファイルにも書きたい場合は追加する。Fileという名前は上の File name="File"で設定している /Logger /Loggers /configuration Enjoy logging by log4j2!! PatternLayoutについては http //yamashiro0110.hatenadiary.jp/entry/2014/08/24/093336
https://w.atwiki.jp/tamorintech/pages/15.html
log4jで実装してみた。(2012/2/4 旧wikiから移行)参考サイト log4jとは(2012/2/4 旧wikiから移行) log4jで実装してみた。(2012/2/4 旧wikiから移行) 今までに学んだ内容でログ出力を行うサンプルコードを書いた。 Log4jSample.java package sandbox.log4j.sample1; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; public class Log4jSample { public static void main(String[] args) { Log4jSample mainApp = new Log4jSample(); mainApp.execute(); } public void execute() { // Loggerインスタンスの生成. Logger logger = Logger.getLogger(Log4jSample.class); // log4j.propertiesを読み込む PropertyConfigurator.configure("bin/sandbox/log4j/sample1/log4j.properties"); // 各レベルでログを出力 logger.trace("TRACEログ"); logger.debug("DEBUGログ"); logger.info("INFOログ"); logger.warn("WARNログ"); logger.error("ERRORログ"); logger.fatal("FATALログ"); } } log4j.propertes # Appenderの定義. log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d %5p %c{1} - %m%n log4j.appender.file=org.apache.log4j.FileAppender log4j.appender.file.File=C \\Log4JTest\\Log4jSample.log log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=%d %5p %c{1} - %m%n # ルートカテゴリーの定義. log4j.rootCategory=INFO,stdout,file 実行するとコンソールには以下のとおりログが出力される。 2011-09-22 12 07 28,144 INFO Log4jSample - INFOログ 2011-09-22 12 07 28,144 WARN Log4jSample - WARNログ 2011-09-22 12 07 28,144 ERROR Log4jSample - ERRORログ 2011-09-22 12 07 28,144 FATAL Log4jSample - FATALログ また、C \\Log4JTest\\Log4jSample.logのファイルに上記と同じ内容のログが出力される。 サンプルコードを書いて rootCategory?rootLogger?という感じ。カテゴリ、ロガー、階層、log4j.propertiesの書き方などがまだよくわからん。 以下のように明示的にlog4j.propertiesの読み込みを記述しないと上手くいかなかった。(Webアプリケーションの場合クラスパスが通った場所にlog4j.propertiesを書いておけばこのようなコードは不要だったような気がしたが・・・) // log4j.propertiesを読み込む PropertyConfigurator.configure("bin/sandbox/log4j/sample1/log4j.properties"); 参考サイト TECHSCORE - Log4J Log4Jをいじる log4jとは(2012/2/4 旧wikiから移行) Jakartaプロジェクトで開発が進められているJavaプログラム用のログAPIである。 ログの出力先を様々に設定できる。ファイル、OutputStream、java.io.Writer、リモートlog4jサーバ、リモートUnix Syslogデーモン、NTイベントログなど log4jには以下の3つの主要コンポーネントがある。Logger - ロギングを行う部分をグループ化し必要なグループのログだけを出力することを可能にする。カテゴリーに優先順位を付けることにより様々な出力方法を指定できる。 Appender - ログの出力先を指定する。 Layout - ログの出力フォーマットを指定する。 log4Jは以下のログレベルを標準提供している(レベルが高い順)。利用者が任意のログレベルを追加することも可能。FATAL - 致命的なエラー。プログラムの異常終了を伴うようなもの。 ERROR - 予期しないその他の実行エラー。 WARN - 警告。廃要素のAPIの使用やAPIの不適切な使用、エラーに近い事象など。 INFO - 情報。実行時の何らかの注目すべき事象(開始や終了など)。 DEBUG - デバッグ用の情報。システムの動作状況に関する詳細な情報。 TRACE - デバッグ情報よりも更に詳細な情報。 使うときのざっくりした流れは以下な感じ。1.Loggerを作成する 2.Appenderを作成してLoggerにぶら下げる 3.Layoutを作成して、Appenderにぶら下げる 4.ログ出力をする。 上記手順の1~3(2~3?)は設定ファイル(log4j.properties)で外部ファイル化できる。
https://w.atwiki.jp/ack_sora/pages/17.html
log4j.propertiesの例・・・ log4j.rootLogger=DEBUG, Console, File log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.Target=System.out log4j.appender.Console.ImmediateFlush=true log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=%m%n log4j.appender.File=org.apache.log4j.RollingFileAppender log4j.appender.File.File=sample.log log4j.appender.File.MaxFileSize=10MB log4j.appender.File.MaxBackupIndex=10 log4j.appender.File.Append=true log4j.appender.File.layout=org.apache.log4j.PatternLayout log4j.appender.File.layout.ConversionPattern=%-5p %d [%t]%C(%L) %m%n ※ログレベル DEBUG :DEBUG~FATALは、それ以下のレベルの内容が出力される。 INFO WARN ERROR FATAL OFF:出力されない