惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

A
About on SuperTechFans
Y
Y Combinator Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Microsoft Security Blog
Microsoft Security Blog
aimingoo的专栏
aimingoo的专栏
I
InfoQ
C
Check Point Blog
IT之家
IT之家
MyScale Blog
MyScale Blog
Apple Machine Learning Research
Apple Machine Learning Research
Vercel News
Vercel News
Last Week in AI
Last Week in AI
GbyAI
GbyAI
P
Proofpoint News Feed
量子位
Stack Overflow Blog
Stack Overflow Blog
Microsoft Azure Blog
Microsoft Azure Blog
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
人人都是产品经理
人人都是产品经理
B
Blog
T
The Blog of Author Tim Ferriss
H
Help Net Security
云风的 BLOG
云风的 BLOG

博客园 - Phinecos(洞庭散人)

火车票秒杀攻略 go-home源码分析----一款针对12306的火车票订票软件 一个简单的MongoDB操作类 Solr Cache使用介绍及分析 每日学习笔记(26) 每日学习笔记(25) 每日学习笔记(24) 深入剖析SolrCloud(四) 深入剖析SolrCloud(三) 深入剖析SolrCloud(二) 深入剖析SolrCloud(一) 技术宅---我的网上抢火车票攻略(终极秒杀版) 技术宅---我的网上抢火车票攻略 一次针对批量查询处理的优化 每日学习笔记(23) 一次内存泄露问题的排查 每日学习笔记(22) 每日学习笔记(20) 每日学习笔记(19)
每日学习笔记(21)
Phinecos(洞庭散人) · 2011-10-12 · via 博客园 - Phinecos(洞庭散人)

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

    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;
    }
}