当log4j.properties文件为

时间:2019-05-21 15:33:28

标签: java spring-boot logging

我将Spring Boot应用程序从web.xml配置文件迁移到了基于Java的配置。在此应用程序中,我们使用log4j2进行日志记录,但是由于周围的某些系统使用了log4j,因此我们也使用了log4j,因此我们无法删除它。

完成所有迁移后,日志不起作用。我发现必须将以下代码添加到我的application.properties文件中

logging.level.project.base.package=TRACE
logging.level.org.springframework=INFO
logging.level.org.hibernate=INFO

添加所有这些已创建的日志以显示,但是只能识别属性文件log4j.properties,并且使用log4j2的日志具有默认的日志记录模式。

如果我删除log4j.properties文件,则log4j2仍然不起作用,此外,我还会收到以下警告消息

log4j:WARN No appenders could be found for logger (org.springframework.web.context.support.StandardServletEnvironment).
log4j:WARN Please initialize the log4j system properly.

我还尝试通过以下方式在application.properties中指定配置文件路径

logging.config=application.properties
logging.config=classpath:application.properties

我们的pom.xml依赖项如下

     <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
    </dependency>

我们没有使用嵌入式tomcat运行,因此我们有一个配置类扩展了SpringBootServletInitializer。我们使用的是2.0.1.RELEASE Spring Boot版本。

下面您可以找到我的2个log4j配置文件

log4j.properties

conversionPatternShort=OLDLOGGGGER %5p %d %-30C{1}:%4L [%X{username}] - %m%n

### APPENDER
log4j.appender.crt=org.apache.log4j.ConsoleAppender
log4j.appender.crt.layout=org.apache.log4j.PatternLayout
log4j.appender.crt.layout.ConversionPattern=${conversionPatternShort}

### Define Levels per package
log4j.rootLogger=ERROR,crt
log4j.logger.some.package1=DEBUG,crt
log4j.logger.some.package2=DEBUG,crt

log4j2.properties

status=ERROR
dest=err
name=LocalConfig

### PATTERN
property.conversionPatternShort=%5p %d %-30C{1}:%4L [%X{username}] - %m%n

### APPENDER
appenders=crt

appender.crt.type=Console
appender.crt.name=crt
appender.crt.layout.type=PatternLayout
appender.crt.layout.pattern=${conversionPatternShort1}

## LOGGER
## defining some loggers, foreach logger I have defined 
##        (name, level, additivity, appenderRef.crt.ref)
logger.xxxxx.name=namex
logger.xxxxx.level=DEBUG
logger.xxxxx.additivity=false
logger.xxxxx.appenderRef.crt.ref=crt

logger.yyyyy.name=namey
logger.yyyyy.level=DEBUG
logger.yyyyy.additivity=false
logger.yyyyy.appenderRef.crt.ref=crt

logger.hibernateUtil.name=org.hibernate.engine.jdbc.spi.SqlExceptionHelper
logger.hibernateUtil.level=ERROR
logger.hibernateUtil.additivity=false
logger.hibernateUtil.appenderRef.crt.ref=crt

rootLogger.level=WARN
rootLogger.appenderRef.crt.ref=crt

我真的找不到导致log4j2不再起作用的更改。你能帮忙吗?

0 个答案:

没有答案