SLF4J

# SLF4J

## slf4j的日志级别分为五种:

info、debug、error、warn、trane

常用的是这是三个:

- info :一般处理业务逻辑的时候使用,就跟 system.err打印一样,用于说明此处是干什么的。slf4j使用的时候是可以动态的传参的,使用占位符 {} 。后边一次加参数,会挨个对应进去。

- debug: 一般放于程序的某个关键点的地方,用于打印一个变量值或者一个方法返回的信息之类的信息

- error: 用户程序报错,必须解决的时候使用此级别打印日志。

不常用的有:

- warn:警告,不会影响程序的运行,但是值得注意。

- trane:一般不会使用,在日志里边也不会打印出来,好像是很低的一个日志级别。

#### log4j.properties的配置文件

```properties

# 日记级别(单个级别) 文件/控制台

log4j.rootLogger=debug, stdout,file

# Redirect log messages to console

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.Target=System.out

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

log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

# Rirect log messages to a log file

log4j.appender.file=org.apache.log4j.RollingFileAppender

log4j.appender.file.File=test.log

log4j.appender.file.MaxFileSize=5MB

log4j.appender.file.MaxBackupIndex=10

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

log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

```

#### Log4jTest.java

```Java

public class Log4jTest {

        private static final Logger logger = LoggerFactory.getLogger(Log4jTest.class);

        public static void main(String[] args) {

            logger.debug("debug");

            logger.warn("warm");

            logger.error("error");

        }

}

```

在`log4j.xml`的配置文件中添加将日志文件插入数据库的配置,同时需要将第一行配置文件改为:

```properties

# 日记级别(单个级别) 文件/控制台

log4j.rootLogger=debug, stdout,file,datasource

```

```properties

#下面是配置将日志信息插入数据库,

#配置输出目标为数据库(假如要将日志在控制台输出,配置为log4j.appender. stdout =org.apache.log4j.ConsoleAppender;将日志写入文件,配置为log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender

#这样的配置在许多地方都要有,需要可查有关资料),当然你也可以自己扩展org.apache.log4j.jdbc.JDBCAppender这个类,只需要在这里配置就可以了例如我们配置我自己扩展的MyJDBCAppender,配置为#log4j.appender.db=com.neam.commons.MyJDBCAppender

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

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

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

#定义什么级别的错误将写入到数据库中

log4j.appender.datasource.BufferSize=1

#设置缓存大小,就是当有1条日志信息是才忘数据库插一次,我设置的数据库名和表名均为user

log4j.appender.datasource.URL=jdbc\:mysql\://localhost\:3306/user?characterEncoding\=UTF8&zeroDateTimeBehavior\=convertToNull

log4j.appender.datasource.user=root

log4j.appender.datasource.password=root

log4j.appender.datasource.sql=insert into user (class,method,create_time,log_level,log_line,msg) values ('%C','%M','%d{yyyy-MM-dd HH:mm:ss}','%p','%l','%m')

```

你可能感兴趣的:(SLF4J)