每日学习笔记(21)

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

  1. public class Log4jInit { 
  2.     private static String logFilePath; 
  3.     private final static String DEFAULT_LOG4J_FILE_NAME = "log4j.xml"
  4.     private org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(getClass()); 
  5.  
  6.     private void configureLog4j() throws javax.xml.parsers.FactoryConfigurationError { 
  7.          
  8.         System.setProperty( "org.apache.commons.logging.Log", "org.apache.commons.logging.impl.NoOpLog" ); 
  9.         Properties p = new Properties(); 
  10.         p.put("log4j.logger.httpclient.wire", Level.ERROR); 
  11.         p.put("log4j.logger.org.apache.commons.httpclient", Level.ERROR); 
  12.          
  13.         Logger root = Logger.getRootLogger(); 
  14.         boolean rootIsConfigured = root.getAllAppenders(). 
  15.         hasMoreElements(); 
  16.         if(root != null) { 
  17.             root.setLevel(Level.ERROR); 
  18.         } 
  19.          
  20.         log.error("turn off log4j"); 
  21.     } 
  22.  
  23.     public static String getLogFilePath() { 
  24.         return logFilePath; 
  25.     } 
  26.  
  27.     public static void setLogFilePath(String logFilePath) { 
  28.         Log4jInit.logFilePath = logFilePath; 
  29.     } 
public class Log4jInit {
	private static 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;
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值