logback使用教学(如何快速实现SLF4J和logback框架的Web项目整合配置)

logback使用教学(如何快速实现SLF4J和logback框架的Web项目整合配置)(1)

作者:老崔,牛旦教育原创,头条首发。

简介

用来用去,虽然现在日志框架很多,但还是觉得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的应用过程,将可让你超快的完成配置并实现日志应用。

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

注:详解可查阅该日志组合框架官网为http://logback.qos.ch/

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

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

logback使用教学(如何快速实现SLF4J和logback框架的Web项目整合配置)(2)

第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

两个文件地址分别如下:

https://wiki.base22.com/btg/files/35488048/35618832/1/1261291177000/logback.xml

https://wiki.base22.com/btg/files/35488048/35618833/1/1261291177000/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] %-5level %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>

总结:

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

logback使用教学(如何快速实现SLF4J和logback框架的Web项目整合配置)(3)

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

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

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页