在log4j.properties文件中官扣,日志輸出是分層的讥蔽。
根Logger
log4j.rootLogger = [level], appenderName1, appenderName2
level有OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL或自定義級別
還有一個log4j.rootCategory。Category是Logger的父類诅愚,所以建議使用Logger龄广。
輸出目的地
log4j.appender.appenderName1 = classInfo
log4j.appender.appenderName1.option1 = value1
log4j.appender.appenderName2.option2 = value2
classInfo指的是log4j提供的appender類粹湃,有:
org.apache.log4j.ConsoleAppender --->輸出到控制臺
org.apache.log4j.FileAppender --->輸出到文件
org.apache.log4j.DailyRollingFileAppender -->每天產生一個文件
org.apache.log4j.RollingFileAppender -->文件到達一定大小產生新文件
org.apache.log4j.WriterAppender -->將日志以流的方式發(fā)送的任意地方
option屬性有:
layout:輸出格式
target:輸出的目標
輸出格式
log4j.appender.appenderName1.layout = classInfo
log4j.appender.appenderName1.layout.option1 = value1
log4j.appender.appenderName1.layout.option2 = value2
classInfo有:
org.apache.log4j.HTMLLayout ? ? ? ? ?以HTML表格形式布局
org.apache.log4j.PatternLayout ? ? ? ?自定義
org.apache.log4j.SimpleLayout ? ? ? ? ?包含日志信息和級別的字符串
org.apache.log4j.TTCCLayout ? ? ? ? ? 包含日志產生的時間,線程灰署,類別等信息
PatternLayout自定義模式:
屬性:conversionPattern
格式符號:
%c ? ? ? ? ? ?輸出全稱類名判帮,如com.xyz.Test
%c{2} ? ? ? 輸出xyz.Test
%C ? ? ? ? ?與上面一樣
%d ? ? ? ? ? 用于輸出日期
%d{dd MM yyyy HH:mm:ss,SSS} ? ? 日 月 年 ?時:分:秒,毫秒
%F ? ? ? ? ? 文件名
%l ? ? ? ? ? 輸出位置(類,方法溉箕,行)
%L ? ? ? ? ?行號
%m ? ? ? ? 要記錄的信息
%M ? ? ? ? 方法
%n ? ? ? ? ?換行
%p ? ? ? ? ?優(yōu)先級晦墙,也就是level
%r ? ? ? ? ? 距離上一條日志生成的時間
%t ? ? ? ? ? 線程名稱
%x?
%X 這倆待測
%20c ? ? ? 類名長度少于20,空格左填充
%-20c ? ? ?類名長度少于20肴茄,空格右填充
%.30c ? ? ?類名長度超過30偎痛,左截斷
%20.30c ?類名長度少于20,空格左填充独郎;長度大于30踩麦,左截斷
包輸出級別
可以設置不同package的日志輸出級別
log4j.logger.packageName/className/methodName = level
可以是包名,類名甚至是方法名氓癌。但是要用全稱谓谦。