new03 2015-10-14 09:50 采纳率: 50%
浏览 1930

commons-logging 与 log4j 结合使用的情况下不使用log4j的日志功能

项目中日志工具用的是commons-logging 与 log4j 。现在需求就是不通过log4j来将日志输出到一个新的日志文件中,但log4j的日志功能还需保留。不知这种需求是否成立?如果成立,又该如何实现呢?(原始需求是这样的:spring mvc框架的项目,怎样通过spring 自带的日志工具将异常输出来一个新的日志文件中,同时框架中的log4j日志功能也需保留。因为spring mvc自带一个commons-logging.jar,所以就抽象出来上面那个问题了)谢谢。

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-04 12:07
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    要解决这个问题,你需要修改你的Spring Boot应用程序以使用Commons Logging而不是Log4J。这可以通过配置Spring Boot应用的logging.properties文件或者通过在类路径上添加commons-logging.jar来实现。

    首先,在你的application.propertiesapplication.yml等配置文件中设置以下属性:

    logging.level.org.springframework.web = ERROR
    

    然后,在你的Java代码中创建一个自定义的日志处理器,并将其添加到Spring Boot应用中。你可以这样做到这一点:

    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    public class CustomLogger implements Logger {
        private static final Logger logger = LoggerFactory.getLogger(CustomLogger.class);
    
        @Override
        public void error(String message, Throwable cause) {
            logger.error(message, cause);
        }
    
        @Override
        public void error(String format, Object arg1) {
            logger.error(format, arg1);
        }
    
        @Override
        public void error(String format, Object[] args) {
            logger.error(format, args);
        }
    }
    

    最后,确保在你的Spring Boot应用程序中包含commons-logging.jar。如果你使用的是Maven,你可以在pom.xml文件中添加以下依赖:

    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.2.3</version>
    </dependency>
    

    现在,当你的Spring Boot应用程序启动时,它应该能够正确地记录错误信息并将其写入一个新的日志文件,同时保留Log4J的日志功能。

    评论

报告相同问题?