slf4j是一个Java日志框架的抽象层,它可以与多种具体的日志框架进行绑定。log4j是其中一种在Java程序中常见的日志框架,可以与slf4j进行绑定。通过使用slf4j和log4j,可以在代码中进行方便的日志记录和管理。
以下是使用log4j作为实际日志框架的示例:
添加依赖
首先需要在项目的pom文件中添加slf4j和log4j的依赖。
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.30</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.30</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.30</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
这里我们也可以使用logback作为实际日志框架而不是log4j,只需要使用相应的依赖即可。在这里我们使用log4j作为实际日志框架。
配置log4j
在项目中添加log4j.properties配置文件,并且配置log4j输出的格式和输出级别等信息。以下是一个基本的log4j.properties例子:
# 显示控制台日志,输出Level级别大于等于info的日志信息
log4j.rootLogger=INFO, stdout
# 输出到控制台log文件
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=[%c] - %m%n
# 输出到日志文件
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=${user.home}/test.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.Append=true
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d [%t] %-5p %c{1}:%L - %m%n
这是一个非常基本的log4j.properties例子,通过这个例子我们可以了解到log4j的一些常用配置属性。例如:
- log4j.rootLogger:设置log4j日志输出的根级别;
- log4j.appender.stdout:设置log4j的控制台输出;
- log4j.appender.file:设置log4j的文件输出;
- log4j.appender.file.File:设置输出的文件位置。
使用Logger
在代码中使用Logger输出日志。首先需要通过LoggerFactory来获取Logger对象:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class MyClass {
private static final Logger logger = LoggerFactory.getLogger(MyClass.class);
public void method() {
logger.info("info log");
logger.warn("warn log");
logger.error("error log");
}
}
这里通过LoggerFactory.getLogger()方法获取Logger对象。在代码中使用Logger对象输出日志信息。上面的代码输出了一个info级别、一个warn级别和一个error级别的日志信息。
示例1
以下是一个使用log4j作为实际日志框架的示例:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class TestLog {
private static final Logger logger = LoggerFactory.getLogger(TestLog.class);
public void test() {
logger.info("输出一条info级别的日志信息");
logger.warn("输出一条warn级别的日志信息");
logger.error("输出一条error级别的日志信息");
}
public static void main(String[] args) {
new TestLog().test();
}
}
在这个示例中,我们通过获取Logger对象来输出一些日志信息。这些日志信息将使用log4j框架的输出格式和输出级别等信息进行输出。
示例2
以下是一个使用log4j作为实际日志框架的Gradle项目的示例:
添加依赖
在Gradle项目的build.gradle文件中添加slf4j和log4j的依赖:
dependencies {
compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.30'
compile group: 'org.slf4j', name: 'jcl-over-slf4j', version: '1.7.30'
compile group: 'org.slf4j', name: 'slf4j-log4j12', version: '1.7.30'
compile group: 'log4j', name: 'log4j', version: '1.2.17'
}
配置log4j
在项目中添加log4j.properties配置文件,并且配置log4j输出的格式和输出级别等信息。例如:
log4j.rootLogger=INFO
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %5p [%t] (%F:%L) - %m%n
使用logger
在代码中使用Logger输出日志。例如:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class TestLog {
private static final Logger logger = LoggerFactory.getLogger(TestLog.class);
public void test() {
logger.info("输出一条info级别的日志信息");
logger.warn("输出一条warn级别的日志信息");
logger.error("输出一条error级别的日志信息");
}
public static void main(String[] args) {
new TestLog().test();
}
}
在这个示例中,我们通过Gradle构建了一个Java项目,并使用了log4j输出日志信息。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:slf4j使用log4j的配置参数方式 - Python技术站