log4jの(A)

まず、基本的な

  、情報をログ情報の出力先appenders-を記録し、ログ情報をlayouts-、レベル出力フォーマットグレード:Log4jには三つの重要なコンポーネントがあります。

  レベルは、ログ情報を、レベル:レベルの優先順位のログがOFF、FATAL、ERROR、WARN、分割され INFO、DEBUG、ALL またはカスタムレベル。log4jは、ERRORあるWARN最高から最低の優先度に、唯一の4つのレベルを使用するINFO、DEBUGをお勧めします。ここではレベルによって定義され、あなたは情報の適切なレベルのアプリケーションのログを記録するようにスイッチを制御することができます。例えば、ここでINFOレベルの定義において、およびこのレベルを超えるだけ等しくし、その後処理、すべてのデバッグレベルのログ情報の適用は、印刷されません。ALL:OFF、すべてのログを出力します:すべてのログ出力を閉じます。

  Appenders-情報の出力先をログ:ログはコンソールまたはファイルに出力されます指定します。

  • ConsoleAppender(コンソール)
  • FileAppender(ファイル)
  • DailyRollingFileAppender(毎日ログファイルを生成)
  • RollingFileAppender(ファイルサイズが指定したサイズに達したときに新しいファイルを作成します)
  • WriteAppender(ログストリーム形式情報は、任意の指定された場所に送信されます)
  • JDBCAppender(データベースにログ情報を保存)

  情報出力形式のログをLayouts-:ログ情報の表示内容を制御します。

  • フルネーム%cの出力ログ情報がクラスに属し
  • %のD {YYYY-MM-DD HH:MM:SS}、同様の出力:2019年5月29日9時20分21秒のような日付や時刻%Dログ出力時点、
  • ログ情報が属するクラス%F出力のクラス名
  • 発生場所%Lの出力ログ・イベント、それらのクラスの最初の数行に、すなわち出力ログ情報文
  • %のMの出力情報は、ログ(エラー)、エラーとして、コードで指定します
  • %のN出力キャリッジリターン、現在のオペレーティングシステムと、特に、キャリッジリターン
  • FATAL%P出力優先度、即ちDEBUG、INFO、WARN、ERROR、
  • アプリケーションからの%のR出力を出力する起動ログ情報が費やされたミリ秒数であります
  • %のT出力は、スレッドのイベントログ名を生成します
  • NDCの%のX出力電流スレッド(ネスト診断コンテキスト)
  • 出力はログメッセージ%Fに生成されるファイル名
  • %%は「%」文字を出力します

  log4jの構成は、1つは、2つのファイルフォーマットをサポートXML標準一般化マークアップ言語中のアプリケーション)フォーマット、一つのJavaプロパティファイルlog4j.properties(キー=値)です。

     log4j.propertiesは、設定ファイルの説明としてファイル:

1 log4j.rootLogger = デバッグコンソール、D、E
 2  
3 log4j.appender.Console = org.apache.log4j.ConsoleAppender
 4 log4j.appender.Console.Target = のSystem.out
 5 log4j.appender.Console.layout = ORG。 apache.log4j.PatternLayout
 6 log4j.appender.Console.layout.ConversionPattern = [%P]%のD {YYYY-MM-DD HH:MM:SS、SSS} [%のT:%1] - %のMの%N
 7  
8 log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
 9 log4j.appender.D.File = E:// ログ/ log.log 
10 log4j.appender.D.Append = 
11log4j.appender.D.Threshold = DEBUG
 12 log4j.appender.D.layout = org.apache.log4j.PatternLayout
 13 log4j.appender.D.layout.ConversionPattern =%-d {YYYY-MM-DD HH:MM:SS } [%T:%のR] - [%のP]%のM%N
 14  
15 log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
 16 log4j.appender.E.File = E:// ログ/ error.logファイル
17 log4j.appender.E.Append = trueを
18 log4j.appender.E.Threshold = ERROR
 19 log4j.appender.E.layout = org.apache.log4j.PatternLayout
 20 log4j.appender.E.layout.ConversionPattern =%-d {YYYY-MM-DD HH:MM:SS} [%T:%のR]  -  [%P]%のm個の%nを
   ①、ルートロガーを設定
  ロガーは、ほとんどの操作のログを処理します。
  構文は次のとおりです。
  log4j.rootLogger = [レベル]、appenderName、appenderName、...
  フロント記載優先レベルのログです。
 
   ②、構成情報、ログ出力先アペンダ
  伐採作業の出力を制御するためのアペンダ責任を負います。
  構文は次のとおりです。
log4j.appender.appenderName = fully.qualified.name.of.appender。クラス
log4j.appender.appenderName.option1 = VALUE1 
... 
log4j.appender.appenderName.optionN =値N
  ここでappenderNameは、任意の名前の①で定義することができています。
  これは、アペンダLog4jの提供次のとおりです。
  org.apache.log4j.ConsoleAppender(コンソール)、
  org.apache.log4j.FileAppender(ファイル)、
  org.apache.log4j.DailyRollingFileAppender(毎日ログファイルを生成)、
  org.apache.log4j.RollingFileAppenderもlog4j.appender.R.MaxBackupIndex = 1によって提供されて、ファイルのサイズlog4j.appender.R.MaxFileSize = 100キロバイトを設定することで、(ファイルサイズは新しいファイルを生成するために、指定されたサイズに達します)保存する バックアップファイルを
  Org.apache.log4j.WriterAppender(ログストリーム形式情報は、任意の指定された場所に送信されます)
  例如:log4j.appender.stdout = org.apache.log4j.ConsoleAppender
  コンソールのstdoutに名前の宛先出力、ConsoleAppenderを定義します。
 
   フォーマット(レイアウト)レイアウト③、ログ情報
  レイアウトは、アペンダの出力をフォーマットする責任があります。
  構文は次のとおりです。
log4j.appender.appenderName.layout = fully.qualified.name.of.layout。クラス
log4j.appender.appenderName.layout.option1 = VALUE1 
... 
log4j.appender.appenderName.layout.optionN =値N
  これは、レイアウトLog4jの提供次のとおりです。
  (HTMLテーブル形式のレイアウトで)org.apache.log4j.HTMLLayout、
  org.apache.log4j.PatternLayout(レイアウトモードを指定するための柔軟性)、
  Org.apache.log4j.SimpleLayout、(レベル情報を含む情報文字列をログ)
  (等ログが生成された時間、スレッド、タイプ情報を含む)org.apache.log4j.TTCCLayout
 
第二に、log4jの設定
   図1に示すように、パッケージのlog4jの依存関係を導入します
<! -のhttps:// mvnrepository.com/artifact/log4j/log4j - > 
<依存> 
  <groupIdを> log4jの</ groupIdを> 
  <たartifactId> log4jの</たartifactId> 
  <バージョン> 1.2.17 </バージョン> 
< /依存関係>
        

 

  図2に示すように、ログの形式と内容を定義します。(:XMLまたはプロパティの2つのメソッドをサポート)

  XML:

<?xml version = "1.0"エンコード= "UTF-8"?> 
<DOCTYPEのlog4jの:!設定SYSTEM "log4j.dtd"> 
<log4jの:設定のxmlns:log4jの= 'のhttp://jakarta.apache.org/log4j / '> 
    <アペンダ名= "コンソール" クラス = "org.apache.log4j.ConsoleAppender"> 
        <レイアウトクラス = "org.apache.log4j.PatternLayout"> 
            <PARAM NAME = "ConversionPattern"値= "[%のP] %D {YYYY-MM-DD HH:MM:SS、SSS} [%T:%L] - %M%N "/> 
        </レイアウト> 
    </アペンダ> 
    <アペンダ名=" D " クラス =" ORG .apache.log4j.DailyRollingFileAppender "> 
        <paramの名前= "ファイル"値= "E://logs/log.log" /> 
        <PARAM NAME = "追加"値= "偽" />paramの名前= "ファイル"値= "E://logs/log.log" /> 
        ます。<param name = "しきい値"値= "デバッグ" /> 
        <レイアウトクラス = "org.apache.log4j.PatternLayout"> 
            <PARAM NAME = "ConversionPattern"値= "% - D {YYYY-MM-DD HH:MM:SS} [%T:%のR] - [%のP]% m個の%N "/> 
        </レイアウト> 
    </アペンダ> 
    <アペンダ名=" E " クラス = "org.apache.log4j.DailyRollingFileAppender"> 
        <PARAM名= "ファイル"値=" E://ログ/エラー.logの"/> 
        <PARAM NAME ="追加」値= "偽" /> 
        <PARAM NAME = "閾値"値= "エラー" /> 
        <レイアウトクラス = "org.apache.log4j.PatternLayout"> 
            <PARAM名= "ConversionPattern" 
    <ロガー名= "E"加法> = "true"を 
        </レイアウト>
    </アペンダ> 
        <レベル値= "エラー" /> 
        <アペンダ-REF REF = "E" /> 
    </ロガー> 
    <ロガー名= "D"加法= "真"> 
        <レベル値= "デバッグ" /> 
        <アペンダ-REF REF = "D" /> 
    </ロガー> 
    <ルート> 
        <レベル値= "デバッグ" /> 
        <アペンダ-REF REF = "コンソール" /> 
        <アペンダ-REF REF = "D" /> 
        <アペンダ-REF REF = "E" /> 
    </ルート> 
</ log4jの:設定>

 

  プロパティ:

1 log4j.rootLogger = デバッグコンソール、D、E
 2  
3 log4j.appender.Console = org.apache.log4j.ConsoleAppender
 4 log4j.appender.Console.Target = のSystem.out
 5 log4j.appender.Console.layout = ORG。 apache.log4j.PatternLayout
 6 log4j.appender.Console.layout.ConversionPattern = [%P]%のD {YYYY-MM-DD HH:MM:SS、SSS} [%のT:%1] - %のMの%N
 7  
8 log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
 9 log4j.appender.D.File = E:// ログ/ log.log 
10 log4j.appender.D.Append = 
11log4j.appender.D.Threshold = DEBUG
 12 log4j.appender.D.layout = org.apache.log4j.PatternLayout
 13 log4j.appender.D.layout.ConversionPattern =%-d {YYYY-MM-DD HH:MM:SS } [%T:%のR] - [%のP]%のM%N
 14  
15 log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
 16 log4j.appender.E.File = E:// ログ/ error.logファイル
17 log4j.appender.E.Append = trueを
18 log4j.appender.E.Threshold = ERROR
 19 log4j.appender.E.layout = org.apache.log4j.PatternLayout
 20 log4j.appender.E.layout.ConversionPattern =%-d {YYYY-MM-DD HH:MM:SS} [%T:%のR]  -  [%P]%のm個の%nを

  

  図3は、(フォローアップに補足より深く理解した上で、慎重な分析なし)のlog4jを初期化します

  log4jのを初期化する3つの方法があります。
  • BasicConfigurator.configureは(): - 、レベルログPatternLayoutはは "%m個の%のN%の-4R [%がT]%-5p%C%X" に設定しながら、この方法は、ConsoleAppenderルートロガーを追加するために、単純なlog4jの初期化ですデバッグします。

  • PropertyConfigurator.configure(文字列configFilenameは):書くためにキーを使用して設定ファイルを読み込みます。

  • DOMConfigurator.configure(文字列のファイル名):フォームXML設定ファイルを読み込みます。

  

  4、log4jのを使用しています

  各クラスは、Logger.getLoggerメソッドを使用してログオンする必要があり、文字列を渡します(通常は、完全なクラス名)Loggerオブジェクトを取得します。Loggerオブジェクトは、静的最終として定義されます。

  クラスXがある場合は、以下の3つの式は、同じパッケージcom.xxxが可能です。

  Logger.getLogger(「com.xxx.X」);

  Logger.getLogger(X.class.getName())。

  Logger.getLogger(X.class)。

 

参考:https://juejin.im/entry/585d1f36da2f6000658485ee

   https://blog.csdn.net/u013870094/article/details/79518028

   https://baike.baidu.com/item/log4j/480673?fr=aladdin#2

おすすめ

転載: www.cnblogs.com/Jin1000x/p/10938958.html