每日学习笔记(21)

1,今天收到报警信息,说应用所在机器的硬盘空间不足了,上去一看,居然发现国庆这几天的日志信息累计达到了260G,可看了下应用下的日志,实际只有几十M而已,进一步check后发现是调用的第三方应用在另一个日志路径下打出大量的Debug信息,回查代码后才明白是LogbackLog4J的冲突问题,于是写了一个类在应用启动时将Log4J的级别调高至ERROR级别,代码如下:

复制代码
    public class Log4jInit { 

    privatestatic String logFilePath;
    private final static String DEFAULT_LOG4J_FILE_NAME = "log4j.xml";
    private org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(getClass());

    private void configureLog4j() throws javax.xml.parsers.FactoryConfigurationError {
        
        System.setProperty( "org.apache.commons.logging.Log", "org.apache.commons.logging.impl.NoOpLog" );
        Properties p = new Properties();
        p.put("log4j.logger.httpclient.wire", Level.ERROR);
        p.put("log4j.logger.org.apache.commons.httpclient", Level.ERROR);
        
        Logger root = Logger.getRootLogger();
        boolean rootIsConfigured = root.getAllAppenders().
        hasMoreElements();
        if(root != null) {
            root.setLevel(Level.ERROR);
        }
        
        log.error("turn off log4j");
    }

    public static String getLogFilePath() {
        return logFilePath;
    }

    public static void setLogFilePath(String logFilePath) {
        Log4jInit.logFilePath = logFilePath;
    }
}

复制代码

posted on   Phinecos(洞庭散人)  阅读(1098)  评论(0编辑  收藏  举报

编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
历史上的今天:
2006-10-12 WebCast听课录(2)

导航

统计

点击右上角即可分享
微信分享提示