您的位置 首页 java

5步轻松搞定SLF4J和logback框架与应用整合

简介

用来用去,虽然现在日志框架很多,但还是觉得SLF4J + logback最为黄金组合。本篇内容,就来快速的介绍如何在web项目中快速配置和使用这个日志框架。

slf4j

Logback意欲成为流行的log4j项目的“后浪”项目。它是由log4j的创始人Ceki Gulcu和许多个人贡献者共同设计的。可追溯到1999年,它构建于建设工业级日志系统的经验基础上。Logback-classic 原生级实现了SLF4J API,因此因此你可轻松地在logback和其他日志框架,如log4j或ava.util.logging 之间来回切换。。

针对 Java 的简单日志外观(Simple Logging Facade for Java,即SLF4J)框架,其用作或说充当各种日志框架的简单门面或抽象接口。这些日志框架如Jjava.util.logging、 log4j和logback等,允许终端用户在部署时插入其所希望用的日志框架。

如果你使用的是一个 Maven 型的 web-app项目,那么用logback实现SLF4J的应用过程,将可让你超快的完成配置并实现日志应用。

闲话少说,下面就分步来通过简单项目来完成这一任务。

注:详解可查阅该日志组合框架官网为

第0步 :为项目导入日志包

如果你没用Maven构建项目,需要在你的项目中导入如下几个相关jar包(如果使用maven,跳过此步),把它们放到你的web项目的lib目下。目录结构如下:

第1步:添加项目的maven依赖

在你的Maven项目下的pom.xml中声明以下依赖项,然后Maven将在构建期间为获对应的库包。添加依赖如下:

 <dependency>
       <groupId>ch.qos.logback</groupId>
       <artifactId>logback-classic</artifactId>
       <version>1.2.3</version>
</dependency>  

注意:这个依赖会自动导入它所需的其它依赖的。而在我们这个教程中,自动导入了另外两个jar包:

Logback-core-1.2.3.jar以及sl4j-api-1.7.25.jar . 具体版本取决于我们上面的依赖版本。

第2步:导入xml配置文件

你可能希望从一个已有基本配置文件开始构建。通常在Maven项目中,你为主源代码实现日志配置,同时也可为测试配置另一个日志配置。这里你可通过单击下面层次结构中的链接,可以下载项目的启动器配置文件。根据所示的层次结构所指示的位置将它们放入您的项目中。

|-src

|-main

|-resources

|-logback.xml

|-test

|-resources

|-logback-test.xml

两个文件地址分别如下:

为了避免网路问题,二个配置文件对应的内容分别提供如下:

 Logback.xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
 
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <layout class="ch.qos.logback.classic.PatternLayout">
      <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5 level  %logger{36} - %msg%n</Pattern>
    </layout>
  </appender>
 
  <logger name="com.base22" level="TRACE"/>
 
 
  <root level="debug">
    <appender-ref ref="STDOUT" />
  </root>
</configuration>
 
Logback-test.xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
 
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <layout class="ch.qos.logback.classic.PatternLayout">
      <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
    </layout>
  </appender>
 
  <root level="debug">
    <appender-ref ref="STDOUT" />
  </root>
</configuration>  

这里,可以自己直接建立相应的xml文件,再把上面的配置内容复制过去,然后再定制内容。

第3步:定制配置文件的内容以便于测试

编辑打开的logback.xml文件。如果你使用了上面的链接中提供的启动配置,你会发现以下内容(跟我给出的内容一致):

 <?xml version="1.0" encoding="UTF-8"?>
<configuration>
 
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <layout class="ch.qos.logback.classic.PatternLayout">
      <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
    </layout>
  </appender>
  
  <logger name="com.base22" level="TRACE"/>
  
 
  <root level="debug">
    <appender-ref ref="STDOUT" />
  </root>
</configuration>  

你会注意到在包级别(“com.base22”)定义了一个日志程序。你可简单地更改它以匹配你的应用程序的包基(package base)。如果需要,还可以声明其他日志器(其它包和/或类级别的)。

这里我简单定制修改一下,把“com.base22”改为“com.aistudying” 。

改天,我在把logback.xml配置详细讲解一下。

第4步:在类中编写日志相关代码

你需要做的最后一件事是在类中添加一些日志代码并测试整个配置。

将以下内容添加到java代码的导入部分:

 import org.slf4j.Logger;
import org.slf4j.LoggerFactory;  

在全局部分的类顶部(在声明类public class XXX extends XXX的行下面)添加以下内容。当然,你可以在getLogger方法调用中更改类的名称(MyClassName)。将其命名为与编写此代码所在的类名称相同。

 static final Logger LOG = LoggerFactory.getLogger(MyClassName.class);  

我的测试代码主体结构模式如下:

 package com.aistudying.examples.logging;
 
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
 
public class LogBackExample {
    static final Logger LOG = LoggerFactory.getLogger(LogBackExample.class);
 
    public static void main(String[] args) {
 
    }
 
}  

在你的代码中添加一些日志记录语句,这样当你运行你的应用程序时,它们就会被立即触发。比如我在类中添加一个方法,如下所示::

 LOG.trace("Hello World! 我记录下如下日志:");
LOG.debug("新冠疫情下世界,我们要更加努力。");
LOG.info("I am fine.");
LOG.warn("上海华群置业有限公司 非法 扣押数明公司的租赁押金及办公设备。");
LOG.error("在不可抗力因素下,华群公司的行为是丧失企业道德与良知的错误行为。");  

为了体验和检查我们的任务,你可以下载这个简单的控制台测试应用程序,然后从命令行把它作为一个Java应用运行或从你的IDE运行。

全部代码如下:

 package com.aistudying.examples.logging;
 
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
 
public class LogBackExample {
    static final Logger LOG = LoggerFactory.getLogger(LogBackExample.class);
 
    public static void main(String[] args) {
       LogBackExample log = new LogBackExample();
       log.executeLogging();
    }
    //记录日志
    public  void executeLogging() {
       LOG.trace("Hello World! 我记录下如下日志:");
       LOG.debug("新冠疫情下世界,我们要更加努力。");
       LOG.info("I am fine.");
       LOG.warn("上海华群置业有限公司 非法 扣押数明公司的租赁押金及办公设备。");
       LOG.error("在不可抗力因素下,华群公司的行为是丧失企业道德与良知的错误行为。");
    }
 
}  

第5步:运行应用,确保日志配置成功

最后,运行你的应用程序并确保它能工作。正常的话,应该在控制台中可看到日志行。如果它不起作用,只需更仔细地回顾这些步骤并修改它。

注意问题: 在运行的是,控制台应该会输出类似如下信息:

“……Could NOT find resource [logback-test.xml]”

要解决此问题,需要在pom中加入如下依赖即可:

         <dependency>
           <groupId>org.slf4j</groupId>
           <artifactId>slf4j-simple</artifactId>
           <version>1.7.25</version>
       </dependency>  

总结:

最后,看下整个示例项目结构图,如下所示:

至此,通过5个步骤就搞定了这个优秀的日志框架的整合与应用。当然还有更高级的东西,下次有机会跟大家继续分享。

点个赞,分享出去吧。^_^

文章来源:智云一二三科技

文章标题:5步轻松搞定SLF4J和logback框架与应用整合

文章地址:https://www.zhihuclub.com/194102.shtml

关于作者: 智云科技

热门文章

发表回复

您的电子邮箱地址不会被公开。

网站地图