slf4j配置详解_5步轻松搞定SLF4J和logback框架与应用整合

f1a17a73a30fcc3c9d4521a22332011d.png

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

简介

用来用去,虽然现在日志框架很多,但还是觉得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目下。目录结构如下:

f65069dceca6eaf385289bfa98760dd6.png

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

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

       ch.qos.logback       logback-classic       1.2.3

注意:这个依赖会自动导入它所需的其它依赖的。而在我们这个教程中,自动导入了另外两个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"?>             %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n                    Logback-test.xml 文件:<?xml version="1.0" encoding="UTF-8"?>             %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n               

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

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

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

<?xml version="1.0" encoding="UTF-8"?>             %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n                     

你会注意到在包级别("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中加入如下依赖即可:

                   org.slf4j           slf4j-simple           1.7.25       

总结:

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

2c929c490258bbb9b2a1804ef6803250.png

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值