1. POM文件配置

<!--排除springboot默认的logback依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><version>${spring.version}</version><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion></exclusions></dependency><!--引入springboot-log4j starter依赖-->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j</artifactId><version>1.3.8.RELEASE</version>
</dependency>

2.log4j.propertie 文件配置

log4j.rootLogger=INFO, Appender1, Appender2log4j.appender.Appender1=org.apache.log4j.ConsoleAppender
log4j.appender.Appender1.layout=org.apache.log4j.PatternLayout
log4j.appender.Appender1.layout.ConversionPattern=%-7p %d [%t] %c %x - %m%nlog4j.appender.Appender2=org.apache.log4j.FileAppender
log4j.appender.Appender2.File=test-log0712.log
log4j.appender.Appender2.layout=org.apache.log4j.PatternLayout
log4j.appender.Appender2.layout.ConversionPattern=%-7p %d [%t] %c %x - %m%n

配置文件各项说明请见 log4j配置项说明

3. 代码应用


这时候我们启动项目,控制台就会出现以下日志:


我们发现,控制台只输出了 info 级别的日志,这是因为我们在 log4j.properties 配置文件中配置了

log4j.rootLogger=INFO, Appender1, Appender2

其中,INFO 就代表了日志输出级别,那我们将此项改成

log4j.rootLogger=DEBUG, Appender1, Appender2

再次运行程序,控制台输出如下:


我们发现,虽然我们打印的 info 和 debug 级别的日志均输出了,但是随之而来的还有一大堆框架里的dubug日志,这会非常影响我们的开发效率,所以我们需要根据不同的包配置不同的日志输出级别,例如Spring框架的日志,我们就输出 info或者 error 级别的日志,我们自己开发的代码,在调试的时候就输出 debug 级别的日志。那么该如何配置呢?

在 log4j.properties 配置文件中:

# rootLogger 我们可以理解成根日志,如果没有单独配置其他包的日志级别,默认情况下,所有的包都按照此级别输出日志。
log4j.rootLogger=debug, Appender1, Appender2

我们可以增加自定义包的日志级别配置,格式如下:

# XXX 是包名,level是日志级别
log4j.logger.XXX=level

例如我们配置如下:

log4j.rootLogger=debug, Appender1, Appender2
log4j.logger.com.rising.testlog=debug

我们的主程序在 com.rising.testlog 包下,此时我们运行主程序,查看控制台日志输出:


此时我们发现,日志按照我们预期的目标输出了,Spring框架的只输出了 info 级别的日志,我们自己定义的“com.rising.testlog“包下输出的是 debug 级别的日志。

4. 更优雅的使用 log

按照上面的配置,那么我们在每个需要使用log的类中都需要增加一行如下代码:

private static Logger log = LoggerFactory.getLogger(XXX.class);

那么有没有更简单的方式呢?

有的,那就是使用注解 @SLF4J

4.1 如何使用

4.1.1 pom文件引入依赖
        <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.6</version></dependency>
4.1.2 代码中进行注解配置


我们将 private static Logger log = LoggerFactory.getLogger(TestLogApplication.class); 代码注释掉,在类上标注 @SLF4j注解即可(注,@Slf4j 默认引入了名称为 log 的日志对象,所以直接使用 log.info() | log.debug() 即可,无需再次声明。)

springboot 集成 log4j,log4j配置不同包不同日志输出级别(按包输出不同级别日志)相关推荐

  1. log4j.properties配置与将异常输出到Log日志文件实例

    将异常输出到 log日志文件 实际项目中的使用: <dependencies><dependency><groupId>org.slf4j</groupId& ...

  2. SpringBoot集成Actuator端点配置

    1.说明 Actuator端点可以监控应用程序并与之交互. Spring Boot包括许多内置的端点, 比如health端点提供基本的应用程序运行状况信息, 并允许添加自定义端点. 可以控制每个单独的 ...

  3. SpringBoot 集成 clickhouse + mybatis-plus 配置及使用问题说明(含建表语句、demo源码、测试说明)

    1.建表语句 -- 建表 CREATE TABLE IF NOT EXISTS tb_stat ( id String, region String, group String, yesterday ...

  4. springboot集成Apollo分布式配置

    安装Apollo服务 1.安装mysql 地址:https://www.cnblogs.com/xuaa/p/10782352.html 2.下载Apollo源码到本地 地址:https://gith ...

  5. SpringBoot集成cas-client 客户端配置拦截过滤,绝对最简单有效,亲测

    我使用的cas-client客户端为2.0.0-GA.对于以前使用web.xml进行配置的只需要更改配置文件即可.此文我主要是针对用于SpringBoot集成客户端的过滤请求讲解. 由于最新的cas客 ...

  6. springboot集成redis redis配置手把手交你不踩坑

    前面我们已经介绍过redis的安装配置和使用以及一些redis的基本概念,如果还有小伙伴不太熟悉的话可以翻翻我之前的博客 1.初识redis 从这篇博客开始看,看完这几篇以后相信你对Redis的概念会 ...

  7. SpringBoot集成Mybatis(0配置注解版)

    Mybatis初期使用比较麻烦,需要各种配置文件.实体类.dao层映射关联.还有一大推其它配置.当然Mybatis也发现了这种弊端,初期开发了generator可以根据表结构自动生成实体类.配置文件和 ...

  8. apollo修改配置刷新bean_携程开源的分布式apollo技术整合springboot集成实现动态刷新配置

    分布式apollo简介 Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性. 本 ...

  9. springboot集成mqtt相关配置+案例

    sdk版本 spring 6.0 springboot 3.x 官网配置说明 spring 官方说明 https://docs.spring.io/spring-integration/referen ...

  10. SpringBoot集成Redis和配置Redis做缓存

    Redis介绍 Redis是一个开源的.高性能的.基于键值对的缓存与存储系统,通过提供多种键值数据类型来适应不同场景下的缓存与存储需求,直观的存储结构使得通过程序交互十分简单. Redis数据库中所有 ...

最新文章

  1. B+树检索的时间复杂度
  2. 全球及中国斜交胎市场品牌竞争形势与投资策略分析报告2022年
  3. leetcode 202. Happy Number
  4. sqlserver连接和操作数据库
  5. 史上最全java架构师技能图谱(下)
  6. mysql5.1数据库乱码_MySql5.1以上版本中文乱码的解决方法
  7. 编程之美 3.1 字符串移位包含问 复杂度(O(N*K)
  8. 树莓派初始化安装与配置
  9. 大气金属片头LOGO扫光动画PR模板MOGRT
  10. Unity3D FingerGestures 手势插件使用
  11. 终于解决 归递调用 警告,其实程序没有 归递调用*** WARNING L13: RECURSIVE CALL TO SEGMENT
  12. MYSQL 数据库对象管理实验
  13. ParameterResolutionException单元测试方法中添加了参数,这是不允许的
  14. H5的学习(二)编辑器的选择
  15. 自动驾驶平台Apollo 2.5环境搭建
  16. 最小生成树(普里姆算法)
  17. journald.conf 中文手册
  18. 程序员是怎么安排电脑桌面的
  19. 山东大学计算机考博难度,我的四个考博面试经历:人大,山大,华科,华理工...
  20. 计算机 调 应用统计,山东工商学院统计学院2020年应用统计专硕调剂信息

热门文章

  1. x86 android 显卡 tablet2,Re: android4.4.2将tablet更改为phone
  2. 国内外的几大主流浏览器性能比较
  3. uc android flash插件,Android版UC浏览器7.3发布 支持Flash元素
  4. A 跳高【中兴捧月神算师-算法精英挑战赛-比特派第一场】
  5. mysql_front安装_MySql5.5安装步骤及MySql_Front视图配置
  6. xposed框架安全模式_Android 系统上的 Xposed 框架中都有哪些值得推荐的模块?
  7. 情感分类介绍及发展方向
  8. 抖音下载小助手GUI版
  9. Android WebView实现长截图
  10. 华为P40怎么解账号锁P40Pro忘记密码ID账号锁解除方案开机设备解锁帐号软件使用方法