Catalina.out文件超大问题


对于在log4j输出log时,有的内容要想写到文件和控制台,
而有的内容只想写到文件中,而不在控制台打印出来。

可以用代码进行动态控制,改变logger中的consoleappender。

/**
  * 使控制台log无效。
  */
public void DisableConsoleLog(Logger logger) {
  // 删除现存
  Enumeration<?> em = logger.getAllAppenders();
  while (em.hasMoreElements()) {
   Object element = em.nextElement();
   if (element instanceof ConsoleAppender) {
    logger.removeAppender((ConsoleAppender) element);
   }
  }
}

/**
  * 使控制台log有效。
  */
public void EnableConsoleLog(Logger logger) {
  DisableConsoleLog(logger);
  final String LOG_LAYOUT_PATTERN = "%m%n";
  // 输出Layout设定
  PatternLayout layout = new PatternLayout(LOG_LAYOUT_PATTERN);
  // 控制台输出设定
  ConsoleAppender consoleAppender = new ConsoleAppender(layout,
    ConsoleAppender.SYSTEM_OUT);
  logger.addAppender(consoleAppender);
}


本文转自原创作品 http://kin111.blog.51cto.com/738881/149867

猜你喜欢

转载自xxxxxxxx-rui.iteye.com/blog/1039859
今日推荐