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