Log4j知识整理

本文介绍Log4j4的日志配置方法及其在Java应用程序中的应用实例。包括不同输出方式如控制台、文件、数据库等的配置,并提供了一个简单的测试类用于演示各种日志级别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

配置文件放到SRE目录下,导入log4j4包
public class CommonsLoggingTest {

    public static Log log = LogFactory.getLog(CommonsLoggingTest.class);
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        log.fatal("fatal信息");
        log.error("error信息");
        log.warn("warn信息");
        log.info("info信息");
        log.debug("debug信息");
        log.trace("trace信息");
        try {
            String str = null;
            str.length();
        } catch (RuntimeException e) {
            // TODO Auto-generated catch block
            log.trace("trace:", e);
            log.debug("debug:",e);
            log.info("info:",e);
            log.warn("warn:", e);
            log.error("error",e);
            log.fatal("fatal:",e);
        }
    }

log4j.properties(名称尽量不要变)

#配置日志的输出级别,此级别及以上的级别的日志可输出显示
log4j.rootLogger=DEBUG,info,f,drfa,DATABASE,MAIL,html,xml
#打印到控制台,便于项目开发及测试
log4j.appender.info = org.apache.log4j.ConsoleAppender
#日志编码方式
log4j.appender.info.Encoding=UTF-8
#是否立即输出(false时不输出)
log4j.appender.info.ImmediateFlush=true
#使用System.err输出
log4j.appender.info.Target=System.err
#布局方式为表达式布局
log4j.appender.info.layout=org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss.SSS} [%C]-[%p] %m%n


#需要单独设置的包名(org.com.utils)及级别(WARN)
log4j.category.org.com.utils=WARN
#打印到日志,一般项目正常工作的时候设置为此模式(按大小滚动文件)
log4j.appender.f=org.apache.log4j.RollingFileAppender
#日志名称及路径
log4j.appender.f.File=log4j.log
#追加文件内容(默认为true)
log4j.appender.f.Append=true
#文件达到10M自动改名
log4j.appender.f.MaxFileSize=10MB
#最多备份10个文件
log4j.appender.f.MaxBackupIndex=10
log4j.appender.f.Encoding=UTF-8
log4j.appender.f.layout=org.apache.log4j.PatternLayout
log4j.appender.f.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss.SSS} [%C]-[%p] %m%n


log4j.category.org.com.utils=DEBUG
#打印到日志,按日期滚动文件
log4j.appender.drfa=org.apache.log4j.DailyRollingFileAppender
#滚动日期格式
log4j.appender.drfa.DatePattern=.yyyy-MM-dd
log4j.appender.drfa.File=log4j_day.log
log4j.appender.drfa.Encoding=UTF-8
log4j.appender.drfa.layout=org.apache.log4j.PatternLayout
log4j.appender.drfa.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss.SSS} [%C]-[%p] %m%n


#数据库输出
log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender
#日志输出级别
log4j.appender.DATABASE.Threshold=DEBUG
log4j.appender.DATABASE.Encoding=UTF-8
#数据库连接URL
log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/test
#数据库驱动
log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver
#用户名
log4j.appender.DATABASE.user=root
#密码
log4j.appender.DATABASE.password=123456
#执行的SQL语句,列内容为表达式
log4j.appender.DATABASE.sql=INSERT INTO tb_log(datetime,priority,message,classname) VALUES('%d','%p','%m','%c')
#输出格式
log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout
log4j.appender.DATABASE.layout.ConversionPattern=%m


#Mail配置
#log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
#缓存文件大小,日志达到512K时发送E-mail
#log4j.appender.MAIL.BufferSize=512
#发送邮件的服务器
#log4j.appender.MAIL.SMTPHost=smtp.126.com
#邮件的标题
#log4j.appender.MAIL.Subject=Log4J Error Message
#用户名
#log4j.appender.MAIL.SMTPUsername=linfenliang
#密码
#log4j.appender.MAIL.SMTPPassword=123456
#发件人地址
#log4j.appender.MAIL.From=linfenliang@126.com
#收件人地址
#log4j.appender.MAIL.To=linfenliang@126.com
#log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout
#log4j.appender.MAIL.layout.ConversionPattern=[ErrorMessage] %d - %c -%-4r[%t] %-5p %c %x - %m%n
#是否打印调试信息,如果选true,则会输出和SMTP之间的握手等详细信息
#log4j.appender.MAIL.SMTPDebug=true


#HTMLLayout布局
log4j.appender.html=org.apache.log4j.FileAppender
log4j.appender.html.File=log.html
log4j.appender.html.Append=true
log4j.appender.html.Encoding=utf-8
log4j.appender.html.layout=org.apache.log4j.HTMLLayout


#XMLLayout布局
#log4j.appender.xml=org.apache.log4j.FileAppender
#log4j.appender.xml.File=xml.log
#log4j.appender.xml.Append=true
#log4j.appender.xml.Encoding=utf-8
#log4j.appender.xml.layout=org.apache.log4j.xml.XMLLayout
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值