您的位置:首页 > 其它

log4j日志配置

2013-07-09 16:22 148 查看
不同的包路径,采用不同的 appender及日志文件进行记录有2种方法

第一种:

修改配置文件:

XX.AName为包名

XX.BName为包名

log4j.logger.XX.AName=DEBUG,A1

log4j.additivity.XX.AName=false

log4j.appender.A1=org.apache.log4j.RollingFileAppender

log4j.appender.A1.MaxFileSize=5120KB

log4j.appender.A1.MaxBackupIndex=20

log4j.appender.A1.File=${user.dir}/log/A1.log

log4j.appender.A1.layout=org.apache.log4j.PatternLayout

log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss,SSS} %t%r%5p %c\:%L - %m%n

---------------------------------------------------------------------------------------------------------

log4j.logger.XX.BName=DEBUG,A2

log4j.additivity.XX.BName=false

log4j.appender.A2=org.apache.log4j.RollingFileAppender

log4j.appender.A2.MaxFileSize=5120KB

log4j.appender.A2.MaxBackupIndex=20

log4j.appender.A2.File=${user.dir}/log/A2.log

log4j.appender.A2.layout=org.apache.log4j.PatternLayout

log4j.appender.A2.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss,SSS} %t%r%5p %c\:%L - %m%n

第二种方法:

程序控制:

CC为随意名称

log4j.logger.CC=DEBUG,CC1

log4j.additivity.CC=false

log4j.appender.CC1=org.apache.log4j.RollingFileAppender

log4j.appender.CC1.MaxFileSize=5120KB

log4j.appender.CC1.MaxBackupIndex=20

log4j.appender.CC1.File=${user.dir}/log/A1.log

log4j.appender.CC1.layout=org.apache.log4j.PatternLayout

log4j.appender.CC1.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss,SSS} %t%r%5p %c\:%L - %m%n

 org.apache.commons.logging.Log LOGGER = LogFactory.getLog("CC");

LOGGER .debug("XXXXX");

附:

#appender名字定义

log4j.rootLogger=INFO,FILE,consoleAppender,RollingFile,MAIL,DailyRollingFile,DATABASE

log4j.addivity.org.apache=true

#配置日志信息输出目的地

#log4j.appender.appenderName = fully.qualified.name.of.appender.class

#(如:log4j.appender.RollingFile = org.apache.log4j.RollingFileAppender)

# 1.org.apache.log4j.ConsoleAppender(控制台)

# 2.org.apache.log4j.FileAppender(文件)

# 3.org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)

# 4.org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)

# 5.org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

#配置日志信息的格式

#log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class

#(如:log4j.appender.RollingFile.layout = org.apache.log4j.HTMLLayout)

# 1.org.apache.log4j.HTMLLayout(以HTML表格形式布局),

# 2.org.apache.log4j.PatternLayout(可以灵活地指定布局模式),

# 3.org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),

# 4.org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

#日记记录的优先级:priority,优先级由高到低分为 

# OFF ,FATAL ,ERROR ,WARN ,INFO ,DEBUG ,ALL。

# Log4j建议只使用FATAL ,ERROR ,WARN ,INFO ,DEBUG这五个级别。

# ERROR 为严重错误 主要是程序的错误

# WARN 为一般警告,比如session丢失

# INFO 为一般要显示的信息,比如登录登出

# DEBUG 为程序的调试信息

#输出格式:layout中的参数都以%开始,后面不同的参数代表不同的格式化信息(参数按字母表顺序列出):

# %c 输出所属类的全名,可在修改为 %d{Num} ,Num类名输出的维(如:"org.apache.elathen.ClassName",%C{2}将输出elathen.ClassName)

# %d 输出日志时间其格式为 %d{yyyy-MM-dd HH:mm:ss,SSS},可指定格式 如 %d{HH:mm:ss}

# %l 输出日志事件发生位置,包括类目名、发生线程,在代码中的行数

# %n 换行符

# %m 输出代码指定信息,如info(“message”),输出message

# %p 输出优先级,即 FATAL ,ERROR 等

# %r 输出从启动到显示该log信息所耗费的毫秒数

# %t 输出产生该日志事件的线程名

#ConsoleAppender,控制台输出

#FileAppender,文件日志输出

#SMTPAppender,发邮件输出日志

#SocketAppender,Socket日志

#NTEventLogAppender,Window NT日志

#SyslogAppender,

#JMSAppender,

#AsyncAppender,

#NullAppender

############################

# 文件输出:FileAppender 

############################ 

log4j.appender.FILE=org.apache.log4j.FileAppender 

log4j.appender.FILE.File=../logs/file.log 

log4j.appender.FILE.Append=false 

log4j.appender.FILE.layout=org.apache.log4j.PatternLayout 

log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n 

# Use this layout for LogFactor 5 analysis

############################################

# 滚动文件输出:RollingFileAppender

############################################
log4j.appender.RollingFile = org.apache.log4j.RollingFileAppender

# 输出以上的INFO信息 

log4j.appender.RollingFile.Threshold = DEBUG 

#保存log文件路径 

log4j.appender.RollingFile.File = ../logs/chenya.html 

#默认为true,添加到末尾,false在每次启动时进行覆盖 

log4j.appender.RollingFile.Append = true 

#一个log文件的大小,KB、MB、GB表示. 在日志文件到达该大小时,将会自动滚动,即将原来的内容移到chenya.html.1文件。

log4j.appender.RollingFile.MaxFileSize = 1MB 

#最多保存3个滚动文件备份(chenya.html.1、chenya.html.2、chenya.html.3)

log4j.appender.RollingFile.MaxBackupIndex = 3 

#输出文件的格式 

log4j.appender.RollingFile.layout = org.apache.log4j.HTMLLayout 

#是否显示类名和行数

log4j.appender.RollingFile.layout.LocationInfo = true 

#html页面的 < title > 

log4j.appender.RollingFile.layout.Title =title:\u63d0\u9192\u60a8\uff1a\u7cfb\u7edf\u53d1\u751f\u4e86\u4e25\u91cd\u9519\u8bef 

############################## SampleLayout ####################################

# log4j.appender.RollingFile.layout = org.apache.log4j.SampleLayout

############################## PatternLayout ###################################

# log4j.appender.RollingFile.layout = org.apache.log4j.PatternLayout

# log4j.appender.RollingFile.layout.ConversionPattern =% d % p [ % c] - % m % n % d

############################## XMLLayout #######################################

# log4j.appender.RollingFile.layout = org.apache.log4j.XMLLayout

# log4j.appender.RollingFile.layout.LocationInfo = true #是否显示类名和行数

############################## TTCCLayout ######################################

# log4j.appender.RollingFile.layout = org.apache.log4j.TTCCLayout

# log4j.appender.RollingFile.layout.DateFormat = ISO8601

#NULL, RELATIVE, ABSOLUTE, DATE or ISO8601.

# log4j.appender.RollingFile.layout.TimeZoneID = GMT - 8 : 00 

# log4j.appender.RollingFile.layout.CategoryPrefixing = false ##默认为true 打印类别名

# log4j.appender.RollingFile.layout.ContextPrinting = false ##默认为true 打印上下文信息

# log4j.appender.RollingFile.layout.ThreadPrinting = false ##默认为true 打印线程名

# 打印信息如下:

#2007 - 09 - 13 14 : 45 : 39 , 765 [http - 8080 - 1 ] ERROR com.poxool.test.test - error成功关闭链接

###############################################################################

############################################

# 每天文件的输出:DailyRollingFileAppender

############################################
log4j.appender.DailyRollingFile = org.apache.log4j.DailyRollingFileAppender

log4j.appender.DailyRollingFile.Threshold = DEBUG

log4j.appender.DailyRollingFile.File = ../logs/cheny.log

log4j.appender.DailyRollingFile.Append = true 

#默认为true,添加到末尾,false在每次启动时进行覆盖

log4j.appender.DailyRollingFile.ImmediateFlush = true 

#直接输出,不进行缓存

# ' . ' yyyy - MM: 每个月更新一个log日志

# ' . ' yyyy - ww: 每个星期更新一个log日志

# ' . ' yyyy - MM - dd: 每天更新一个log日志

# ' . ' yyyy - MM - dd - a: 每天的午夜和正午更新一个log日志

# ' . ' yyyy - MM - dd - HH: 每小时更新一个log日志

# ' . ' yyyy - MM - dd - HH - mm: 每分钟更新一个log日志

log4j.appender.DailyRollingFile.DatePattern = ' . ' yyyy - MM - dd ' .log ' 

#文件名称的格式

log4j.appender.DailyRollingFile.layout = org.apache.log4j.PatternLayout

log4j.appender.DailyRollingFile.layout.ConversionPattern =%d %p [ %c] - %m %n %d

##############################

# 控制台输出:ConsoleAppender

##############################

log4j.appender.consoleAppender = org.apache.log4j.ConsoleAppender

log4j.appender.consoleAppender.Threshold = DEBUG

log4j.appender.consoleAppender.layout = org.apache.log4j.PatternLayout

log4j.appender.consoleAppender.layout.ConversionPattern =%d %-5p %m %n

log4j.appender.consoleAppender.ImmediateFlush = true

# 直接输出,不进行缓存 

log4j.appender.consoleAppender.Target = System.err 

# 默认是System.out方式输出

########################

# 发送邮件:SMTPAppender

########################

# log4j的邮件发送appender,如果有必要你可以写自己的appender

log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender

#设置发送邮件的门槛,仅当等于或高于ERROR(比如FATAL)时,邮件才被发送

log4j.appender.MAIL.Threshold=DEBUG

#邮件缓冲区大小 日志达到10K时发送Email

log4j.appender.MAIL.BufferSize=10

#发送邮件的邮箱帐号
log4j.appender.MAIL.From=mail@163.com

#SMTP邮件发送服务器地址

log4j.appender.MAIL.SMTPHost=smtp.163.com

#SMTP发送认证的帐号名
log4j.appender.MAIL.SMTPUsername=mail@163.com

#SMTP发送认证帐号的密码

log4j.appender.MAIL.SMTPPassword=password

#是否打印调试信息,如果选true,则会输出和SMTP之间的握手等详细信息

log4j.appender.MAIL.SMTPDebug=true

#邮件主题

log4j.appender.MAIL.Subject= 警告 log4J Message

#发送到什么邮箱,如果要发送给多个邮箱,则用逗号分隔;

#如果需要bcc给某人,则加入下列行:
log4j.appender.MAIL.Bcc=mail@163.com
log4j.appender.MAIL.To=mail@163.com

#设置输出样式和内容

log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout

log4j.appender.MAIL.layout.ConversionPattern =%d - %c -%-4r [%t] %-5p %c %x - %m %n

######################

#数据库:JDBCAppender

######################
log4j.appender.DATABASE.Threshold = ERROR

log4j.appender.DATABASE = org.apache.log4j.jdbc.JDBCAppender

log4j.appender.DATABASE.URL = jdbc:mysql://localhost:3306/db_oa

log4j.appender.DATABASE.driver = com.mysql.jdbc.Driver

log4j.appender.DATABASE.user = root

log4j.appender.DATABASE.password = 123456

#log4j.appender.DATABASE.sql = INSERT INTO tb_log(text) VALUES( ' %d - %c %-5p %c %x - %m%n ' )

log4j.appender.DATABASE.sql = INSERT INTO tb_log(text) VALUES('%d,%-5p,%C,%L,%x') 

log4j.appender.DATABASE.layout = org.apache.log4j.PatternLayout

log4j.appender.DATABASE.layout.ConversionPattern =% d - % c -%- 4r [ % t] %- 5p % c % x - % m % n

#数据库的链接会有问题,可以重写org.apache.log4j.jdbc.JDBCAppender的getConnection() 使用数据库链接池去得链接,可以避免insert一条就链接一次数据库

#log4j官方建议把其提供的JDBCAppender作为基类来使用,然后Override三个父类的方法:getConnection(),closeConnection(Connection con)和getLogStatement(LoggingEvent event)。

#原来如此,那就写一个子类JDBCPoolAppender来替代这个JDBCAppender

#################### 

# Socket Appender 

#################### 

#log4j.appender.SOCKET=org.apache.log4j.RollingFileAppender 

#log4j.appender.SOCKET.RemoteHost=localhost 

#log4j.appender.SOCKET.Port=5001 

#log4j.appender.SOCKET.LocationInfo=true 

# Set up for Log Facter 5 

#log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout 

#log4j.appender.SOCET.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%n

 

level指大于该级别的日志才显示, error>warn>info>debug
threshold起过滤作用,即低于过滤条件的日志不显示

---------------------------------------------------------------------------------------

log4j.logger.com.tuan.partner.service.api=info,apiFile

log4j.appender.apiFile=org.apache.log4j.DailyRollingFileAppender

log4j.appender.apiFile.Append=true

#log4j.appender.apiFile.File=c:/partner-api.log

log4j.appender.apiFile.File=/data/application/logs/partner/api/partner-api.log

log4j.appender.apiFile.ImmediateFlush=true

log4j.appender.apiFile.layout = org.apache.log4j.PatternLayout

log4j.appender.apiFile.DatePattern  = '_'yyyy-MM-dd-HH'.log'

log4j.appender.apiFile.layout.ConversionPattern = %d{yyyy-MM-dd HH\:mm\:ss} [%t] %-5p (%c\:%L) - %m%n
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Log4j