Javaログ印刷のポイント


基本概念
  • log 4 j三大logger、appender、layout
  • logレベルALL
  • パッケージおよびクラスのlogger
  • log4j.logger.=
  • log4j.logger..=,

  • appender
  • ConsoleAppender
  • FileAppender
  • RollingFileAppender
  • RandomAccessFileAppender

  • Messaging
  • JMSAppender
  • SMTPAppender

  • DB
  • JDBCAppender
  • JPAAppender
  • NoSQLAppender

  • Remote
  • SocketAppender
  • SyslogAppender


  • layout
  • PatternLayout
  • HTMLLayout
  • XMLLayout
  • JSONLayout
  • SerializedLayout

  • rolling file保存ファイルサイズの設定( , log )
    # Root logger option 
    log4j.rootLogger=INFO, file   
    # Direct log messages to a log file
    log4j.appender.file=org.apache.log4j.RollingFileAppender   
    #Redirect to Tomcat logs folder #log4j.appender.file.File=${catalina.home}/logs/logging.log   
    log4j.appender.file.File=C:\\logigng.log 
    log4j.appender.file.MaxFileSize=10MB 
    log4j.appender.file.MaxBackupIndex=10
    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

    pattern layoutパラメータの説明
  • %d{ABSOLUTE}印刷時間;ABSOLUTEはHH:mm:ss,SSSフォーマット
  • を用いる.
  • %5 pプリントログレベル(ERROR,DEBUG,INFO,etc.);5文字未満の
  • 文字をスペースで入力
  • %tプリントスレッド名
  • %c{1}印刷クラスとパッケージ名(第1層のみを示す);
  • %M印刷方法名
  • %L印刷行番号
  • %m印刷するメッセージ
  • %n改行
  • %highlight{pattern}{style}指定されたフォーマットに一致するANSI色を追加
  • ぎゃくモード
  • はlogを繰り返し、例えばdao層のexceptionが投げ出され、log
  • も返す.
  • logの場合は改行
  • log物が多すぎて、長すぎます
  • testでlogを使用するにはassertを使用するほうが
  • に適している.
  • 異常ロゴなし
  • ##などの統一されていないフォーマット
  • を使用
  • 口座とパスワード等の秘密情報
  • を印刷する.
    ベストプラクティス
  • 印刷タイムスタンプ、スレッド名、クラス名、流水番号、ユーザid
  • rolling appender+maxFileSizeとmaxBackupIndex
  • を使用
  • 印刷exception記憶印刷スタック
  • 生産環境余分なものを印刷しない
  • パラメータ化を使用して、文字列接合
  • を回避
  • logbackまたはlog 4 j 2除去enabled判断
  • static final修飾
  • logレベル
  • を決定する
  • 印刷コンテキストの値
  • ユーザ名パスワード等のセキュリティ秘密情報を印刷しない
  • .
  • システムディスク領域+定期的なクリーンアップポリシーに注意