gpt4 book ai didi

java - 奇怪的 log4j 声明

转载 作者:行者123 更新时间:2023-12-01 11:16:39 24 4
gpt4 key购买 nike

我的旧项目存在问题:日志文件未附加到 Eclipse 的控制台 View 中。记录器不是在 log4j.xml 或 log4j.properties 中声明 log4j 使用的属性,而是在 java 中定义:

import org.apache.log4j.FileAppender;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;


public class GCLogger {
private static GCLogger _self;
private Logger logger;

private static final String NAME_FILE = "fichierLog.log";

public static GCLogger getInstance() {
if (_self == null || _self.logger == null) {
GCLogger logger = new GCLogger();
logger.initLogger();
_self = logger;
}
return _self;
}

public void error(String msg, Exception e) {
if (logger != null) {
logger.error(msg, e);
}
}

public void debug(String msg) {
if (logger != null) {
logger.debug(msg);
}
}

private void initLogger() {
logger = Logger.getRootLogger();
FileAppender fa = new FileAppender();
PatternLayout monLayout = new PatternLayout("%d{DATE} - %5p %c{1} - %m%n");
logger.removeAllAppenders();

try {
File repLogs = new File(GCConstants.GC_REPERTOIRE_LOGS);
if (!repLogs.exists()) {
repLogs.mkdir();
}

fa = new FileAppender(monLayout, GCConstants.GC_REPERTOIRE_LOGS + File.separator + NAME_FILE, true);
fa.activateOptions();
fa.setImmediateFlush(true);

logger.addAppender(fa);
logger.setLevel(Level.ALL);

} catch(Exception e) {
logger = null;
}
}
}

有没有一种简单的方法可以在控制台 View 中显示fichierLog.log(使用eclipse配置)?

如果没有,要使其正常工作的最小改变是什么?

最佳答案

最小更改 - 添加控制台附加程序:

ConsoleAppender console = new ConsoleAppender(monLayout); // re-use the layout
logger.addAppender(console);

<意见>但是,如果您要对代码库进行其他更改,我强烈建议将其更改为使用外部配置 - 从长远(可能是短期)来看,这将使您的生活变得更加轻松。

关于java - 奇怪的 log4j 声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31746107/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com