Log4j日志输出到不同地方

本文概要:先后介绍配置log4j日志输出到控制台,文件,数据库,邮件;最后给出了日志输出模板中各种符号(%d, %p等等)的含义;


### 配置根appender ###
# 输出到以下这些定义的地方 console, fileAppender, dailyRollingFile, ROLLING_FILE, DATABASE, MAIL
# 这些名字可以自己起
log4j.rootLogger = debug,console,fileAppender,dailyRollingFile,ROLLING_FILE,DATABASE,MAIL

 

### 设置输出sql的级别,其中logger后面的内容全部为jar包中所包含的包名 ###
# 指这些包/类的日志信息都用 debug 级别
log4j.logger.org.apache=dubug
log4j.logger.java.sql.Connection=dubug
log4j.logger.java.sql.Statement=dubug
log4j.logger.java.sql.PreparedStatement=dubug
log4j.logger.java.sql.ResultSet=dubug

 

### 配置输出到控制台 ###
# consoleAppender 对应的类
log4j.appender.console = org.apache.log4j.ConsoleAppender
# 输出到控制台所使用的对象
log4j.appender.console.Target = System.out
# 布局类
log4j.appender.console.layout = org.apache.log4j.PatternLayout
# 输出到控制台的日志的模板
log4j.appender.console.layout.ConversionPattern =  %d{ABSOLUTE} %5p %c{1}:%L - %m%n

 

### 配置输出到文件 ###
# fileAppender 对应的类
log4j.appender.fileAppender = org.apache.log4j.FileAppender
# 指定输出到 logs/log.log
log4j.appender.fileAppender.File = logs/log.log
# 追加方式写到文件
log4j.appender.fileAppender.Append = true
# 输出到 fileAppender 的日志等级阈值
log4j.appender.fileAppender.Threshold = DEBUG
# 布局
log4j.appender.fileAppender.layout = org.apache.log4j.PatternLayout
# 打印的日志的模板
log4j.appender.fileAppender.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

 

### 配置输出到文件,并且每天都创建一个文件 ###
# DailyRollingFileAppender 对应的类
log4j.appender.dailyRollingFile = org.apache.log4j.DailyRollingFileAppender
# 指定输出到logs/log.log
log4j.appender.dailyRollingFile.File = logs/log.log
# 追加方式写入日志文件
log4j.appender.dailyRollingFile.Append = true
# 输出到 dailyRollingFile 的日志等级阈值
log4j.appender.dailyRollingFile.Threshold = DEBUG
# 布局类
log4j.appender.dailyRollingFile.layout = org.apache.log4j.PatternLayout
# 输出到 dailyRollingFile 的日志模板
log4j.appender.dailyRollingFile.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

 

### 配置输出到文件,且大小到达指定尺寸的时候产生一个新的文件 ###
# RollingFileAppender 对应的类
log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender
# 输出到 ROLLING_FILE 的日志等级阈值
log4j.appender.ROLLING_FILE.Threshold=ERROR
# 输出到rolling.log
log4j.appender.ROLLING_FILE.File=rolling.log
# 追加方式写入日志文件
log4j.appender.ROLLING_FILE.Append=true
# 最大日志大小10K,超过即创建一个新的日志文件
log4j.appender.ROLLING_FILE.MaxFileSize=10KB
log4j.appender.ROLLING_FILE.MaxBackupIndex=1
# 布局类
log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout
# 日志输出到 ROLLING_FILE 的模板
log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
### 配置输出到邮件 ###(以163邮箱为例)
# SMTPAppender 对应的类
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
# 输出到邮件的日志等级阈值
log4j.appender.MAIL.Threshold=ERROR
# 缓存数
log4j.appender.MAIL.BufferSize=10
# 发件人
log4j.appender.MAIL.From=XXXXX@163.com
# SMTP服务器
log4j.appender.MAIL.SMTPHost=smtp.163.com
# 邮箱用户名
log4j.appender.MAIL.SMTPUsername=XXXXX@163.com
# 是否打印调试信息,如果选true,则会输出和SMTP之间的握手等详细信息
log4j.appender.MAIL.SMTPDebug=false
# 邮箱的SMTP授权码
log4j.appender.MAIL.SMTPPassword=填写你获取到的SMTP授权码
# 邮件主题
log4j.appender.MAIL.Subject=Log4J Message
# 收件人
log4j.appender.MAIL.To=XXXXXX@XXX.com
# 布局类
log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout
# 输出到邮件的日志模板
log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

 

### 配置输出到数据库 ###
# JDBCAppender 对应的类
log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender
# 数据库链接url
log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/mydb
# 数据库驱动类
log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver
# 数据库用户名
log4j.appender.DATABASE.user=root
# 数据库密码
log4j.appender.DATABASE.password=root
# 发送给数据库的sql
log4j.appender.DATABASE.sql=INSERT INTO log4j (app, level, message) VALUES ('XXX', '%p', '[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n')
# 布局类
log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout
# 发送到数据库的日志模板
log4j.appender.DATABASE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
# 发送给数据库的日志等级阈值
log4j.appender.DATABASE.Threshold=ERROR

 

最后附上ConversionPattern中各种符号的含义:

# -X号: X信息输出时左对齐;
# %p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL,
# %d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
# %r: 输出自应用启动到输出该log信息耗费的毫秒数
# %c: 输出日志信息所属的类目,通常就是所在类的全名
# %t: 输出产生该日志事件的线程名
# %l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main (TestLog4.java:10)
# %x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。
# %%: 输出一个"%"字符
# %F: 输出日志消息产生时所在的文件名称
# %L: 输出代码中的行号
# %m: 输出代码中指定的消息,产生的日志具体信息
# %n: 输出一个回车换行符,Windows平台为"\r\n",Unix平台为"\n"输出日志信息换行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值