Java 如何停止log4j的日志记录

Java 如何停止log4j的日志记录,java,eclipse,logging,log4j,Java,Eclipse,Logging,Log4j,注意:虽然我还没有找到问题的最终解决方案,但在Andreas的帮助下,我意识到我错误地配置了log4j,它使用的是默认属性文件,而不是我自己指定的文件。我会张贴解决方案,当我有它正常工作,以便它是为人们在未来提供。。。本周末十月节之后:D 好的,我知道这里也有人问过类似的问题,但是我还没有找到一篇文章有同样的问题或者解决方法 好的,所以我试着开始使用log4j来尝试和习惯我的代码的正确日志记录(耶,最佳实践!),但是我在试图修复代码中的错误时遇到了一点问题。问题是我需要读取控制台输出,但log4

注意:虽然我还没有找到问题的最终解决方案,但在Andreas的帮助下,我意识到我错误地配置了log4j,它使用的是默认属性文件,而不是我自己指定的文件。我会张贴解决方案,当我有它正常工作,以便它是为人们在未来提供。。。本周末十月节之后:D

好的,我知道这里也有人问过类似的问题,但是我还没有找到一篇文章有同样的问题或者解决方法

好的,所以我试着开始使用log4j来尝试和习惯我的代码的正确日志记录(耶,最佳实践!),但是我在试图修复代码中的错误时遇到了一点问题。问题是我需要读取控制台输出,但log4j将所有内容都放在那里(调试)。起初,这不是一个问题,所以我没有费心让log4j停止这样做。但现在我发现在输出中查找所需的信息非常困难

作为我问题的快速解决方案,我尝试通过编程将两个记录器上的日志记录级别都更改为OFF,不

然后我试图更改属性文件以防止它写入控制台,没有

然后我试图删除属性文件中的所有内容,认为log4j将不再知道如何操作,不

然后我试图从我的代码中完全删除log4j,方法是注释掉所有的行,不初始化任何记录器,不。。。等等,什么

是的,似乎即使在我的项目中没有任何log4j代码,log4j也不想停止

此时,我尝试清理项目(我正在使用eclipse),然后尝试重新启动eclipse,然后是我的笔记本电脑

我知道我可能有很大的疏忽,但我觉得注释掉所有的代码会有所帮助

我应该注意到,我试过的任何东西都不会对打印的内容产生任何影响,它总是以相同的顺序打印相同的行(因此,我确信我做错了什么)

如能提供任何帮助,我们将不胜感激

编辑1:我还应该指出,我认为是log4j导致问题的原因是控制台中的所有输出都采用了我在log4j.properties文件中定义的格式

编辑2:

一类

public class MessageSender extends AbstractCommand{
//private static final Logger LOG = Logger.getLogger(HelloWorldCommandFactory.class);

private String messageText = "placeholder";
private final long MESSAGE_ID = XXXXXXXXXX;

@Override
public void execute() {
    try {
        //LOG.setLevel(Level.OFF);
        //LOG.info("MESSAGE_TEXT: "+messageText);                                                                   
        TelegramRequest telegramRequest = TelegramRequestFactory.createSendMessageRequest(MESSAGE_ID, messageText, true, null, null);
        //LOG.info("REQUEST: "+telegramRequest.equals(getRequestHandler()));
        requestHandler.sendRequest(telegramRequest);
    } catch (JsonParsingException | TelegramServerException e) {
        e.printStackTrace();
    }
}

public MessageSender(Message message, RequestHandler requestHandler){
    super(message, requestHandler);
}

public MessageSender(Message message, RequestHandler requestHandler, String text){
    super(message, requestHandler);
    this.messageText = text;
}
另一类

public class MyCommandFactory implements CommandFactory {

    //private static final Logger LOG = Logger.getLogger(MyCommandFactory.class);

    @Override
    public Command createCommand(Message message, RequestHandler requestHandler) {
        //LOG.setLevel(Level.OFF);
        //LOG.info("MESSAGE_ID: "+message.getChat().getId()+"  MESSAGE_BODY: "+message.getText());
        return new MessageSender(message, requestHandler);
    }
}
输出样本(我已删除某些敏感信息)

编辑3:

log4j.properties文件

log4j.rootLogger=INFO, CONSOLE

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern= %d{HH:mm:ss,SSS} [%t] %-5p %x %C{1} : %m%n

您可以将级别更改为关闭,这将消除所有日志记录。根据log4j网站,按重要性顺序排列的有效级别为跟踪调试信息警告错误致命。有一个名为OFF的未记录级别,该级别高于FATAL,并关闭所有日志记录

在采用编程方法时,您是否正确地执行了该操作?我会这样做的-

List<Logger> loggers = Collections.<Logger>list(LogManager.getCurrentLoggers());
loggers.add(LogManager.getRootLogger());
for ( Logger logger : loggers ) {
logger.setLevel(Level.OFF);
}

发布您的代码和控制台输出。如果更改代码没有改变任何内容,那么您就没有运行该代码。@Andreas我也是这么想的,但是在我向项目添加log4j之前,除了我自己编写的一些特定System.out.println()语句外,它没有向控制台键入任何内容。导致问题的行为仅在安装log4j后开始。因此,当我删除所有log4j代码并且行为继续时,我感到困惑:/你确定你的
XML
被记录器选中了吗?我不确定你的确切意思是什么是的,我已经尝试过了。尝试重新启动eclipse,清理项目,重新启动我的笔记本电脑,但仍然缺少一些内容检查我的编辑以获得其他可能的解决方案。尝试一下,让我知道它是如何工作的。我将在周末之后再看它,但当我让它按预期工作时,我会进行更新。谢谢你的帮助!实际上,刚从啤酒节开车回来的人(清醒)还没有再看它一眼。我明天就回来工作了,到时候我会试试的,我会告诉你我的进展。好的,我已经试过了所有的方法。我已经完全从项目中删除了log4j。从maven消失,从任何地方消失。我决定再次运行代码,看看会发生什么。我在github使用的一个框架中发现一个类找不到log4j类时出错。调查之后。我从github使用的电报接口需要log4j,因为编写它的人添加了它,但他没有为您创建任何配置它的方法。它停留在他配置的设置上。这还不够好。。。
List<Logger> loggers = Collections.<Logger>list(LogManager.getCurrentLoggers());
loggers.add(LogManager.getRootLogger());
for ( Logger logger : loggers ) {
logger.setLevel(Level.OFF);
}
log4j.debug=FALSE
log4j.rootLogger=INFO, R
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=C:/apache-tomcat-5.5.27/logs/testlog.log
log4j.appender.R.MaxFileSize=100KB
log4j.appender.R.MaxBackupIndex=5
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss.SSSS} %p %t %c - %m%n