log 4 j概要

5859 ワード

1、Log 4 jとは何ですか.
Log 4 jは簡単に言えばログを覚えるためのもので、プログラム猿のデバッグと分析を助けるのに役立ちます.彼の役割は大きいですが、私たちはまだ利用していません.ここで紹介します.詳細はlog 4 j公式サイトにアクセスしてください.
2、Log 4 jの概念
Log 4 jには、Logger、Appender、Layoutの3つの主要なコンポーネントがあります.
  • Log 4 jは、開発者が複数のLoggerを定義することを許可し、各Loggerは自分の名前を持ち、Logger間は名前によって隷属関係を示す.ロガーはRootと呼ばれ、永遠に存在し、名前検索や参照ができず、ロガーを通過することができます.getRootLogger()メソッドを取得し、他のLoggerはLoggerを通過する.getLogger(String name)メソッド.
  • Appenderは、すべてのlog情報をどこに保存するかを示すために使用され、Log 4 jではconsole、files、GUI components、NT Event Loggersなど、複数のappenderがサポートされています.1つのLoggerは複数のAppenderを持つことができます.つまり、Log情報を画面に出力し、1つのファイルに格納することができます.
  • Layoutの役割は、ログ情報の出力方式、すなわち出力の情報をフォーマットすることである.

  • 3、Log 4 jのプロファイル
    プロファイルを使わずにプログラムで構成を実現できるが、この方法は現在のシステム開発では明らかに望ましくなく、プロファイルを採用できる場所では必ずプロファイルを使用しなければならない.Log 4 jは、XML形式とJavaのproperty形式の2つの形式のプロファイルをサポートしています.
    log4j.rootLogger=debug,CONSOLE
    
    log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
    log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
    log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n
    
    log4j.appender.DEFAULT=org.apache.log4j.DailyRollingFileAppender 
    log4j.appender.DEFAULT.DatePattern='.'yyyy-MM-dd
    log4j.appender.DEFAULT.Append=true
    log4j.appender.DEFAULT.File=${user.home}/logs/zsht-default.log
    log4j.appender.DEFAULT.layout=org.apache.log4j.PatternLayout
    log4j.appender.DEFAULT.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n
    
    log4j.appender.REST=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.REST.DatePattern='.'yyyy-MM-dd
    log4j.appender.REST.Append=true
    log4j.appender.REST.File=${user.home}/logs/zsht-rest.log
    log4j.appender.REST.layout=org.apache.log4j.PatternLayout
    log4j.appender.REST.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n
    
    # Sense
    log4j.appender.SENSE=org.apache.log4j.DailyRollingFileAppender 
    log4j.appender.SENSE.DatePattern='.'yyyy-MM-dd
    log4j.appender.SENSE.Append=true
    log4j.appender.SENSE.File=${user.home}/logs/sense.log
    log4j.appender.SENSE.layout=org.apache.log4j.PatternLayout
    log4j.appender.SENSE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n
    
    # CACHE
    log4j.appender.CACHE=org.apache.log4j.DailyRollingFileAppender 
    log4j.appender.CACHE.DatePattern='.'yyyy-MM-dd
    log4j.appender.CACHE.Append=true
    log4j.appender.CACHE.File=${user.home}/logs/cache.log
    log4j.appender.CACHE.layout=org.apache.log4j.PatternLayout
    log4j.appender.CACHE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n
    
    # SESSION
    log4j.appender.SESSION=org.apache.log4j.DailyRollingFileAppender 
    log4j.appender.SESSION.DatePattern='.'yyyy-MM-dd
    log4j.appender.SESSION.Append=true
    log4j.appender.SESSION.File=${user.home}/logs/session.log
    log4j.appender.SESSION.layout=org.apache.log4j.PatternLayout
    log4j.appender.SESSION.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n
    
    log4j.logger.REST=INFO,REST
    log4j.logger.org.jpxx.sense=INFO,SENSE
    log4j.logger.org.jpxx.commons.cache=INFO,CACHE
    log4j.logger.org.jpxx.commons.session=INFO,SESSION
    

    rootの設定
    フォーマットはlog 4 j.rootLogger=[level],appenderName, ...,ここでlevelは、出力情報が必要なレベル(info,debugなど)を設定し、後にappenderがあり、ログ情報がどこに出力されるかを指定することに相当し、上記構成のCONSOLE,DEFAULTのように複数の宛先を同時に指定することができる.
    appenderの設定
    Appender構成ログの出力先
    log4j.appender.DEFAULT=org.apache.log4j.DailyRollingFileAppender 
    log4j.appender.DEFAULT.DatePattern='.'yyyy-MM-dd
    

    翌日元のファイルのファイル名をxxに変更します.yyyy-MM-dd
    Log 4 jが提供するappenderには以下のものがあります.
    org.apache.log4j.ConsoleAppender(   )
    org.apache.log4j.FileAppender(  )
    org.apache.log4j.DailyRollingFileAppender(          )
    org.apache.log4j.RollingFileAppender(                  )
    org.apache.log4j.WriterAppender(                   )
    org.apache.log4j.jdbc.JDBCAppender(          )
    

    プロファイルのパス
    log4j.appender.DEFAULT.File=${user.home}/logs/zsht-default.log
    log4j.appender.DEFAULT.Append=true
    

    Append=trueは、元のファイルを上書きせずに末尾からログを追加することを示します
    ${user.home}は、現在のユーザー構成ログ情報のフォーマット(レイアウト)を表します.
    log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
    

    Log 4 jが提供する一般的なlayoutには以下のものがあります.
    org.apache.log4j.HTMLLayout( HTML      )
    org.apache.log4j.PatternLayout(           )
    org.apache.log4j.SimpleLayout(               )
    org.apache.log4j.TTCCLayout(         、  、      )
    

    PatternLayoutレイアウトを使用すると柔軟性があり、構成を使用できます.
    log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n
    

    具体的な出力形式を定義するため、Log 4 JはC言語のprintf関数のような印刷形式でログ情報Log 4 jでよく使われる印刷パラメータをフォーマットする
    %d              ,     ISO8601,          ,  :%d{yyy MMM dd HH:mm:ss,SSS}
    %c        ,           
    %p      , DEBUG,INFO
    %m           
    %n          ,Windows   “\r
    ”,Unix “
    ” %r log %t %l , 、 , 。

    サブログ・プロパティ・アイテムの構成(構成なし)
    RESTのログはrootLoggerとRESTに同時に出力されます
    log4j.logger.REST=INFO,REST
    

    出力org.jpxx.senseのログ
    log4j.logger.org.jpxx.sense=INFO,SENSE
    log4j.additivity.org.jpxx.sense=false
    

    4.項目の注意事項(重要)
  • log4j.propertiesファイルの場所:eclipseでwebプロジェクトのsrc/log 4 jに位置する.propertiesは、生産サーバ上でtomcatディレクトリ/webapps/ROOT/WEB-INF/classes/log 4 jに位置する.properties
  • ログファイルの場所(.logファイル):log 4 j.appender.appenderName.Fileという属性構成、appenderNameは自分で命名され、${user.home}は現在のユーザーを表し、コード
    System.getProperty("user.home");
    
    でデータ
  • を得ることができることを知らない.
  • 配置環境がwindowsシステムの場合、システムに1つのディスクがない限り、ログはcディスクに出力できません.ログ・ファイルは蓄積され続け、監視されていない場合、ログ・ファイルがcディスク全体を占めている場合、システムは
  • クラッシュします.
  • 生産リリースのアプリケーションログのレベルはinfoであり、debugではありません.debugは主にプログラム猿のデバッグに使用されます.生産でdebugレベルを使用すると、ログ量が2倍になり、
  • のスペースを埋めやすくなります.