java日志框架(二)Log4j的学习,这个是什么,如何配置输出到文件,数据库

2021-07-16 11:23:51 浏览数 (1)

目录

  • Log4j是什么
  • 组件
    • Loggers(日志记录器)
    • Appenders(输出控制器)
    • Layouts(日志格式化)
    • 日志输出格式
  • 利用例子解读
    • 日志级别
    • 如何利用配置文件
    • 将日志输出到文件(FileAppender)
    • 将日志输出到文件(RollingFileAppender)
    • 将日志输出到文件(DailyRollingFileAppender)
    • 将日志输出到数据库中
    • 自定义logger

Log4j是什么

组件

Loggers(日志记录器)

Appenders(输出控制器)

Layouts(日志格式化)

日志输出格式

利用例子解读

1 创建maven项目,导入log4j依赖

代码语言:javascript复制
  <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

    </dependencies>

2 写代码,入门

代码语言:javascript复制
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Logger;
import org.junit.Test;


public class Log4jTest {

    @Test
    public void test(){
//        加载初始化配置
        BasicConfigurator.configure();

        // 创建日志记录器对象,不是直接new,因为这个类受保护,所以只能使用静态方法进行创建对象
        Logger logger = Logger.getLogger(Log4jTest.class);
        // 日志记录输出
        logger.info("dddddd");


    }
}

log4j有默认的配置,

代码语言:javascript复制
        BasicConfigurator.configure();

这个是加载默认的配置,不写这个会报错,我们看这个源码里面是什么

这个配置里面是默认的控制台输出,输出格式也有默认的

日志级别

如何利用配置文件

源码里面,这个文件可以配置哪些?

也就是项目一启动,就会加载log4j.properties这个文件,就会加载里面的这些属性。

CONSOLE 这个是自己定义的,你也可以改名字

代码语言:javascript复制
log4j.rootCategory=info

# 表示以控制台方式输出
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
# 表示输出的格式
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=- %c-%d-%m%n
代码语言:javascript复制
log4j.rootCategory=info,CONSOLE,LOGFILE

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=- %c-%d-%m%n

log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=D:/axis.log
log4j.appender.LOGFILE.Append=true


PatternLayout 这个是自定义的
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=- %c-%d-%m%n

将日志输出到文件(FileAppender)

我们再配置文件里面写 关于输出到文件的配置:

代码语言:javascript复制
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=- %c-%d-%m%n
log4j.appender.file.file = D://test//log4j.log
log4j.appender.file.encoding = UTF-8

将日志输出到文件(RollingFileAppender)

按照文件大小

代码语言:javascript复制
log4j.appender.rollingFile=org.apache.log4j.RollingFileAppender
log4j.appender.rollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.rollingFile.layout.ConversionPattern=- %c-%d-%m%n
log4j.appender.rollingFile.file = D://log4j.log
log4j.appender.rollingFile.maxFileSize = 1MB
log4j.appender.rollingFile.maxBackupIndex = 5

将日志输出到文件(DailyRollingFileAppender)

按时间

代码语言:javascript复制
log4j.appender.dailyRollingFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.dailyRollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.dailyRollingFile.layout.ConversionPattern=- %c-%d-%m%n
log4j.appender.dailyRollingFile.file = D://log4j.log
log4j.appender.dailyRollingFile.datePattern = '.'yyyy-MM-dd HH-mm-ss

将日志输出到数据库中

首先在数据库中创建日志数据表

导入数据库依赖

代码语言:javascript复制
#保存到数据库
log4j.appender.logDb=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.logDb.layout=org.apache.log4j.PatternLayout
log4j.appender.logDb.layout.ConversionPattern=- %c-%d-%m%n
log4j.appender.logDb.Driver = com.mysql.jdbc.Driver
log4j.appender.logDb.URL = com.mysql.jdbc.Driver
log4j.appender.logDb.User = root
log4j.appender.logDb.Password = 123456
log4j.appender.logDb.Sql = insert into tbl_log(id,name,createtime,level,filename) values()

配置一下就可以

自定义logger

0 人点赞