java日志级别动态调整

近期在web项目维护过程中,发现一个令人脑袋大的事,线上的项目出了bug,必须日志开启debug才能看到错误。总不能没事重启一下吧?em……,老大听了想打人。后来查了下,其实可以通过动态的设置日志级别的,所以后面就赶紧加上这个功能。项目中用的日志组件是log4j。

其实并没有多麻烦,只不是在刚开始没有考虑到。又攒个小技能

1、首先看下实现这个功能的api

public class org.apache.log4j.Logger extends Category {}    //这个是log4j提供的日志输出类
org.apache.log4j.Category#setLevel      //从父类继承来的这个setLevel方法,这个实现动态设置日志级别的

2、web的请求处理使用的springmvc,所以增加一个接口专门用来调整日志级别,饿,注意下权限,不是谁都能来改一下的,em……,老大知道了又想打人

@RequestMapping(value = "{logLevel}",method = {RequestMethod.PUT})
public String setLogLevel(@PathVariable String logLevel){return logService.setLogLevel(logLevel);
}public String logService(String logLevel){...final Enumeration<Logger> logs = LogManager.getCurrentLoggers();while (logs.hasMoreElements()) {final Logger logger = logs.nextElement();// 给log4j对象设置级别logger.setLevel(level);}  ...
}

java日志级别动态调整相关推荐

  1. 日志级别动态调整——小工具解决大问题

    随着外卖业务的快速发展,业务复杂度不断增加,线上系统环境有任何细小波动,对整个外卖业务都可能产生巨大的影响,甚至形成灾难性的雪崩效应,造成巨大的经济损失.每一次客诉.系统抖动等都是对技术人员的重大考验 ...

  2. java日志级别的作用_Java系统日志级别对性能的影响性

    先介绍下java系统的日志 日志框架:是一种日志接口,不负责具体的日志输出形式(有点类似于JDBC),可以灵活的切换日志输出形式.常见的日志框架有slf4j.jcl,只提供Logger.LoggerF ...

  3. 一文搞懂Java日志级别,重复记录、丢日志问题

    1 SLF4J 日志行业的现状 框架繁 不同类库可能使用不同日志框架,兼容难,无法接入统一日志,让运维很头疼! 配置复杂 由于配置文件一般是 xml 文件,内容繁杂!很多人喜欢从其他项目或网上闭眼co ...

  4. 手写logback_springboot logback调整mybatis日志级别无效的解决

    springboot logback调整mybatis日志级别无效的解决 现象 在日志配置文件 logback-spring.xml 中,无论怎么修改级别,mybatis 的 sql 日志都会打印出来 ...

  5. SpringBoot实用小技巧之动态设置SpringBoot日志级别

    有时线上问题我们用打日志的方式来观察错误或埋点参数,但由于这些日志如果都打出来会占用大量存储空间而且覆盖了一些有效信息,所以线上级别一般设置INFO,调试级别用作特殊情况下.此时如果线上想查看调试级别 ...

  6. SpringBoot实用小技巧之动态设置SpringBoot日志级别 1

    有时线上问题我们用打日志的方式来观察错误或埋点参数,但由于这些日志如果都打出来会占用大量存储空间而且覆盖了一些有效信息,所以线上级别一般设置INFO,调试级别用作特殊情况下.此时如果线上想查看调试级别 ...

  7. Java中的记录器 - Java日志示例

    Java中的记录器 - Java日志示例 今天我们将研究Java中的Logger.Java Logger提供了java编程的日志记录. 目录[ 隐藏 ] 1 Java中的记录器 1.1 Java Lo ...

  8. springboot动态调整日志级别

    1.springboot使用log4j2 springboot使用的common-logging,底层兼容各种日志框架如,log4j2,slf4,logback等,默认底层使用的是logback,我们 ...

  9. 实现Log4j和Logback的统一日志封装与动态日志级别调整

    一.背景 项目中使用日志的地方非常广泛, 如果要做统一的处理,比如调整格式, 增加信息打印, 要修改很多地方,难以维护,所以需要能够将日志做一个统一的封装, 便于扩展使用:同时想做到动态调整日志级别, ...

最新文章

  1. php 导航高亮,zblogphp导航高亮代码分享教程
  2. 如何设计登录接口,十分钟内连续登录5次失败,需要等待30分钟才能登录
  3. 熟悉linux的安全与优化
  4. Vue—相关工具—webpack
  5. .Net Core应用搭建的分布式邮件系统设计
  6. 第11章 进入保护模式
  7. java okhttp3 工具类,Retrofit+okhttp+Rxjava网络请求工具类
  8. [C++] - 闭包(closure)
  9. iPhone 6 Plus实际分辨率为2208x1242的问题
  10. 打印机设置手动双面打印方法
  11. 华为四核处理器K3V2
  12. Linux下C语言编程资料
  13. 基于c语言编程思路的实践与探索,基于C语言编程思路的实践与探索
  14. xml和接口简单理解
  15. com.alibaba.fastjson.JSONException: syntax error, pos 1
  16. dsa数字签名c语言编程,对文件进行DSA数字签名
  17. google翻译破解大综合
  18. 一起学习 “PS”(1、移动工具)
  19. “逐渐失效”的摩尔定律
  20. 03_美图秀秀实现思路

热门文章

  1. Java PTA成语解码
  2. 谈谈Spring中的IOC和AOP概念 - 倪升武的博客 - CSDN博客
  3. 穷人创业的三个投资秘方
  4. 毒App鉴定为假的球鞋居然出自天猫国际
  5. Adobe Photoshop CC 2019.0.5 for Mac 中文共享版 - 专业图片处理工具
  6. Android 超简单音乐播放器(三)根据歌曲名或者歌手搜索本地音乐(EditText监听)
  7. JOJ2737:狼与羊的故事(求图上任意两点间的桥边)
  8. 推好单-好券app代理申请 带你分享优惠券赚钱
  9. graphql 接口定义加注释
  10. 比较有创意的面试题集锦