首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >《手把手教你》系列基础篇(九十一)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-下篇(详解教程)

《手把手教你》系列基础篇(九十一)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-下篇(详解教程)

作者头像
北京-宏哥
发布于 2022-04-27 10:56:46
发布于 2022-04-27 10:56:46
37300
代码可运行
举报
运行总次数:0
代码可运行

1.简介

为了方便查看和归档:(1)不同包的日志可能要放到不同的文件中,如service层和dao层的日志;(2)不同日志级别:调试、信息、警告和错误等也要分文件输出。所以宏哥今天主要介绍和分享的是:使用logback输出日志到不同文件。废话不说直入主题。

2.第一种方法:根据包输出

根据包输出,通过logger的name属性指定不同的包,具体步骤如下:

1. 创建不同包下的两个类

2. 在logback(-test).xml中添加

3. 测试方法

2.1创建不同包

1.创建不同包并在包下新建类ADao和BService。如下图所示:

(1)ADao

(2)BService

2.参考代码

(1)ADao.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package dao;

import org.slf4j.LoggerFactory;
import ch.qos.logback.classic.Logger;

/**
 * @author 北京-宏哥
 * 
 * @公众号:北京宏哥
 * 
 * 《手把手教你》系列基础篇(九十一)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-下篇(详解教程)
 *
 * 2022年3月29日
 */

public class ADao {  
    static final Logger log = (Logger) LoggerFactory.getLogger(ADao.class);  
      
    public void queryADao() {  
        log.debug("query queryADao start...");  
        log.error("An error occurred during the query");  
        log.debug("query queryADao end...");  
    }  
}  

(2)BService.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package service;

import org.slf4j.LoggerFactory;
import ch.qos.logback.classic.Logger;
import dao.ADao;

/**
 * @author 北京-宏哥
 * 
 * @公众号:北京宏哥
 * 
 * 《手把手教你》系列基础篇(九十一)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-下篇(详解教程)
 *
 * 2022年3月29日
 */

public class BService { 
    
    static final Logger log = (Logger) LoggerFactory.getLogger(BService.class);  
    ADao ad = new ADao();
    public void bObligate() {  
        log.debug("bObligate start..."); 
        ad.queryADao();
        log.error("An error occurred during the progress");  
        log.debug("bObligate end...");  
    }  
}  
2.2logback.xml

1.新建logback.xml文件,而且在logback.xml中添加如下图所示内容:

2.参考代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="UTF-8"?>  
  
<configuration>  
    <appender name="serviceAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">  
        <file>./logs2/bribery.log</file>  
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
            <fileNamePattern>/logs2/bribery-%d{yyyy-MM-dd}.log</fileNamePattern>  
        </rollingPolicy>  
        <encoder>  
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>  
        </encoder>  
    </appender>  
      
    <appender name="daoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">  
        <file>./logs2/venality.log</file>  
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
            <fileNamePattern>./logs2/venality-%d{yyyy-MM-dd}.log</fileNamePattern>  
        </rollingPolicy>  
        <encoder>  
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>  
        </encoder>  
    </appender>  
      
    <logger name="service.BService" level="DEBUG" additivity="false">  
        <appender-ref ref="serviceAppender" />  
    </logger>  
      
    <logger name="dao.ADao" level="DEBUG" additivity="false">  
        <appender-ref ref="daoAppender" />  
    </logger>  
      
    <!-- root的默认level是DEBUG -->  
    <root level="DEBUG">  
        <appender-ref ref="rollingAppender" />  
    </root>  
</configuration>  
2.3测试方法

1.新建测试类。如下图所示:

2.参考代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import service.BService;

/**
 * @author 北京-宏哥
 * 
 * @公众号:北京宏哥
 * 
 * 《手把手教你》系列基础篇(九十一)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-下篇(详解教程)
 *
 * 2022年3月29日
 */

public class testLogback {
    
    public static void main(String[] args) {
        
        BService bs = new  BService();
        bs.bObligate();
    }

}
2.4运行测试方法

1.运行代码,右键Run AS->Java Appliance,控制台输出,如下图所示:

2.输出的日志文件,如下图所示:

3.第二种方法:根据日志级别输出

 在这里宏哥把所有级别为ERROR的日志输出到一个文件中。

这里宏哥还是延续使用上边的代码,只需要一个劲的修改logback.xml文件的内容即可!

3.1加入过滤器

1.修改logback(-test).xml文件:在serviceAppender和daoAppender都加入以下级别过滤器,这样错误日志就不会在bribery.log和venality.log中打印了,代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<filter class="ch.qos.logback.classic.filter.LevelFilter">  
    <level>ERROR</level>  
    <onMatch>DENY</onMatch>  
    <onMismatch>ACCEPT</onMismatch>  
</filter>  
3.2新建一个appender

1.新建一个错误日志的appender,代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<appender name="errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">  
    <file>/logs/error.log</file>  
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
        <fileNamePattern>/logs/venality-%d{yyyy-MM-dd}.log</fileNamePattern>  
    </rollingPolicy>  
    <encoder>  
        <pattern>%d{HH:mm:ss.SSS} %thread %X{invokeNo} %logger{40} %msg%n</pattern>  
    </encoder>  
    <filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 只打印错误日志 -->  
        <level>ERROR</level>  
        <onMatch>ACCEPT</onMatch>  
        <onMismatch>DENY</onMismatch>  
    </filter>  
</appender>  
3.2加上errorAppender

在name为dao.ADao和service.BService的logger都加上errorAppender,代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<appender-ref ref="errorAppender" />  
3.4完整的logback.xml文件

1.修改完成的logback.xml文件,如下图所示:

2.参考代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="UTF-8"?>  
  
<configuration>  
    <appender name="serviceAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">  
        <file>./logs3/bribery.log</file>  
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
            <fileNamePattern>/logs3/bribery-%d{yyyy-MM-dd}.log</fileNamePattern>  
        </rollingPolicy>  
        <encoder>  
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>  
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">  
            <level>ERROR</level>  
            <onMatch>DENY</onMatch>  
            <onMismatch>ACCEPT</onMismatch>  
        </filter>          
    </appender>  
      
    <appender name="daoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">  
        <file>./logs3/venality.log</file>  
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
            <fileNamePattern>./logs3/venality-%d{yyyy-MM-dd}.log</fileNamePattern>  
        </rollingPolicy>  
        <encoder>  
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>  
        </encoder>  
        <filter class="ch.qos.logback.classic.filter.LevelFilter">  
            <level>ERROR</level>  
            <onMatch>DENY</onMatch>  
            <onMismatch>ACCEPT</onMismatch>  
        </filter>  
    </appender>  
    <appender name="errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">  
        <file>./logs3/error.log</file>  
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
            <fileNamePattern>/logs3/venality-%d{yyyy-MM-dd}.log</fileNamePattern>  
        </rollingPolicy>  
        <encoder>  
            <pattern>%d{HH:mm:ss.SSS} %thread %X{invokeNo} %logger{40} %msg%n</pattern>  
        </encoder>  
        <filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 只打印错误日志 -->  
            <level>ERROR</level>  
            <onMatch>ACCEPT</onMatch>  
            <onMismatch>DENY</onMismatch>  
        </filter>  
    </appender>   
    <logger name="service.BService" level="DEBUG" additivity="false">  
        <appender-ref ref="serviceAppender" />  
        <appender-ref ref="errorAppender" />  
    </logger>  
      
    <logger name="dao.ADao" level="DEBUG" additivity="false">  
        <appender-ref ref="daoAppender" />  
        <appender-ref ref="errorAppender" />  
    </logger>  
      
    <!-- root的默认level是DEBUG -->  
    <root level="DEBUG">  
        <appender-ref ref="rollingAppender" />  
    </root>  
</configuration>  
3.5运行测试方法

1.修改完成后,运行代码,右键Run AS->Java Appliance,控制台输出,如下图所示:

 2.输出的日志文件,如下图所示:

 从上图可以看出:service和dao的错误日志都打印到error.log文件中了。

4.小结

  好了,时间也不早了,今天就分享和讲解到这里,希望对您有所帮助,感谢您耐心地阅读!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
logback日志入门超级详细讲解
日志:就是能够准确无误地把系统在运行状态中所发生的情况描述出来(连接超时、用户操作、异常抛出等等); 日志框架:就是集成能够将日志信息统一规范后输出的工具包。
呆呆
2021/10/09
2.8K0
SpringBoot 的 logback 日志配置
1. 在 resources 目录下创建日志的配置文件 logback-spring.xml , 这是 SpringBoot 官方约定的名称
北漂的我
2020/07/03
8170
logback 配置
(adsbygoogle = window.adsbygoogle || []).push({});
yawn
2019/06/15
8670
Logback配置详解
1、Java日志体系(目前常用) slf4j:由log4j的作者开发,本身不替供日志具体实现,只对外提供接口或门面。 logback:slf4j的作者开发的的slf4j的实现,优于log4j。 log4j2:由Apache开发,参考了logback,并做了一些优化。 jdk自带的JUL(java.util.logging)和Apache的JCL(Jakarta Commons Logging)好像不太常用了。 2、slf4j和常用日志实现组件的适配 slf4j + logback:slf4j-api.jar
Libertyyyyy
2022/10/25
7190
Logback配置详解
Logback使用问题汇总
SpringBoot中logback.xml使用application.yml中属性
编程随笔
2024/09/24
1170
《手把手教你》系列基础篇(九十)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-中篇(详解教程)
上一篇宏哥介绍是如何使用logback将日志输出到控制台中,但是如果需要发给相关人需要你拷贝出来,有时候由于控制台窗口的限制,有部分日志将会无法查看,因此我们还是需要将日志输出到文件中,因此今天主要介绍和分享如何使用logback将日志输出到文件中。
北京-宏哥
2022/04/27
3040
《手把手教你》系列基础篇(九十)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-中篇(详解教程)
logback.xml配置详解
<?xml version="1.0" encoding="UTF-8"?> <!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,比如
JQ实验室
2022/03/18
2.8K0
logback 日志输出格式
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan
全栈程序员站长
2022/06/28
1.1K0
logback 日志输出格式
Java日志框架那些事儿
在项目开发过程中,我们可以通过 debug 查找问题。而在线上环境我们查找问题只能通过打印日志的方式查找问题。因此对于一个项目而言,日志记录是一个非常重要的问题。因此,如何选择一个合适的日志记录框架也非常重要。 在Java开发中,常用的日志记录框架有JDKLog、Log4J、LogBack、SLF4J、SLF4J。这些日志记录框架各有各的特点,各有各的应用场景。了解这些框架的特点及应用场景,有利于我们做技术选型的时候做出正确的判断。 JDKLog:日志小刀 JDKLog是JDK官方提供的一个记录日志的方式
陈树义
2018/04/13
1.9K0
Java日志框架那些事儿
logback节点配置详解
debug : 默认为false ,设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。
用户5252199
2022/04/18
4630
logback节点配置详解
Logback 日志框架 尚未完结
在resources下添加配置文件 logback.xml 不过有人建议更名为 logback-spring.xml,我也建议更名为 logback-spring.xml
收心
2022/05/05
2390
概念,原理,到例子,全解析logback ,学会日志系统
在业务系统开发中,一般使用的日志框架有 Commons logging 、 Log4j 、 Slf4j 、 Logback 、 Log4j 2 等。
香菜聊游戏
2021/07/15
3K0
SpringBoot——配置logback日志
介绍: 在项目运行中,我们需要对项目的出错或运行有了解,可以通过日志文件的查看来实现。因此,项目日志的打印就至关重要。本文给出一种logback日志的配置。改配置会在每天进行整理,同时区分不同的日志级别进行记录。
凡人飞
2020/09/21
2.4K0
SpringBoot——配置logback日志
Springboot日志管理——logback
当我们启动springboot的时候,控制台的默认输出就是由logback完成的。
Tom2Code
2022/11/21
8020
Springboot日志管理——logback
ZooKeeper 学习之logback配置文件
ZooKeeper 学习之logback配置 这是一个读写zk的学习项目,用到了zookeeper、logback、slf4j、maven等工具 项目目录结构 Maven Pom 文件配置 z
大数据工程师-公子
2019/03/14
1.3K0
logback的使用和配置|logback比log4j的优点|logback是一个更好的log4j
这个大家可以在官方文档上的源代码就可以看到:https://logback.qos.ch/apidocs/index.html
小小鱼儿小小林
2020/06/23
1K0
电商网站开发记录(四) logback.xml配置以及初始代码提交
1.logback.xml <?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="60 secon
Dar_Alpha
2018/09/03
4580
Logback简介与配置详解
在开发和维护Spring Boot应用程序时,一个强大而灵活的日志框架是至关重要的。Spring Boot默认集成了Logback,一个高性能的Java日志框架。本文将介绍如何配置Logback以满足你的日志记录需求。
修己xj
2023/12/20
9710
Logback简介与配置详解
logback 配置文件
本文由 小马哥 创作,采用 知识共享署名4.0 国际许可协议进行许可 本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名 最后编辑时间为: 2022/05/04 19:38
IT小马哥
2022/05/05
1K0
SpringBoot的Slf4j日志功能,实现根据业务不同将日志写进不同的文件
我们的项目的业务是比较多多,不同的业务想要生成不同的日志到不同的文件里面,这样就好找信息
一写代码就开心
2022/11/16
1.4K0
相关推荐
logback日志入门超级详细讲解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档