java web slf4j_怎样在自己的 Web 中加入强大的日志系统?slf4j 的日志插件必须要知道!...

本文介绍了在Java应用程序中日志管理的重要性,特别是SLF4J作为日志接口的角色。SLF4J允许用户根据需求选择日志系统,如Log4j。通过SLF4J与Log4j的集成,可以简化日志系统的配置和使用,提高日志记录的效率。文中还展示了如何在Maven项目中配置相关依赖,以及如何在代码中使用SLF4J进行日志打印。同时提到了ELK日志系统在微服务架构中的应用。
摘要由CSDN通过智能技术生成

对于程序猿来讲,一个应用程序的日志管理是极为重要的。因为,它可以帮助我们随时查看应用程序的运行状态、执行效果等信息,从而监控软件系统、或是根据日志信息解决一些重要的问题。

但是在 Java 应用程序中又有着众多的日志框架或是工具组件,比如 Java 的 Jdk 自身提供的 logging、Apache 提供的 log4j、还有 logback 等日志框架。今天所提到的 slf4j,它并不是一个具体的日志解决方案,它的存在只是为了服务于各式各样的日志系统,用户可以根据自己的需求选择日志系统比如 log4j。slf4j 相当于是对不同的日志系统提供的接口,它独立于我们所经常使用的日志系统比如 logback、log4j 等等。大家试想,如果在开发过程中出现了好几个日志类库,那么我们必须要对这些单独的日志系统进行配置、并且各个日志系统维护起来也是相当的麻烦。

经过 slf4j 的接口封装以后的日志系统调用也变得更加的简洁、并且使打印日志的方法也变得更加的高效。特别是提供的模板方法进行日志打印,减少了不停的创建字符串的消耗,在生产环境中日志对系统性能的影响往往是非常重要的,必须引起重视。现在,一般的微服务架构中都会采用 ELK 的架构模式,简单来讲就是将每个微服务模块的日志、接口调用信息都发送到另外一台服务器上使用 Web 日志系统进行查看,如果有需要了解 ELK 日志系统的可以留言后期文章进行说明。logger.debug("result is name: {} and age : {} ", name, age);

接下来,说明一下如何结合 log4j、slf4j 的日志组件进行应用在我们的框架应用程序中,先理论、后实践,话不多说,我们先来看一下 Maven 的 pom 配置文件中配置这两个日志组件的依赖。

org.slf4j

slf4j-api

1.7.21

org.slf4j

slf4j-log4j12

1.7.21

其中 slf4j-api 是对外提供独立的日志接口,而 slf4j-log4j12 则是 slf4j 对于 log4j12 的支持,需要注意的是这两个组件的版本要保持一致以免产生不必要的麻烦。完成了依赖组件的引入,说一下日志系统的配置。在 项目中的 resource 文件夹下面新建 log4j.properties 文件进行接下来的配置。### 设置rootLogger,一般在开发环境中使用 debug 级别日志

log4j.rootLogger = info,stdout,D,E

## 控制台输出

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

### 默认是system.out

log4j.appender.stdout.Target = System.out

### 布局格式,可以灵活指定

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

### 消息格式化

log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

## 以每天一个文件输出日志

log4j.appender.D = org.apache.log4j.DailyRollingFileAppender

## 输出文件目录

log4j.appender.D.File = /usr/log/info.log

## 消息增加到指定的文件中,false表示覆盖指定文件内容

log4j.appender.D.Append = true

## 输出信息最低级别

log4j.appender.D.Threshold = INFO

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

log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

如果是 SpringBoot 还可以使用 yml 的形式来进行配置,结构、条理都会更加的清晰。最后,简单来说明一下使用 slf4j 的形式在应用程序中进行日志打印操作。// 使用 slf4j 的 Logger 对象获取类名为 Main 的日志对象,一般 Main 指的是当前类的名称

private static Logger logger = Logger.getLogger(Main.class);

public static void main(String[] args) {

String str = "测试字符串";

logger.info("str:{}", str);

}

这里展示了 logger.info() 方法的使用,还有 debug()、error() 方法等,并且每个方法都可以使用不同数量的参数可以满足比较多的需求。

更多精彩前往微信公众号【老王说编程】>>>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值