当前位置: 首页 > 知识库问答 >
问题:

属性配置器。配置不适用于spring

苏宏峻
2023-03-14

我试图初始化log4j记录器使用SpringIOC和使用财产onfigurator.configure配置记录器,但财产onfigurator.configure不工作。

我的问题是如何将配置(log4j.properties)传递给Logger类?

波姆。xml

<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.3.9.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
          <version>1.5.5.RELEASE</version>
    </dependency>
   <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
          <version>1.5.5.RELEASE</version>
    </dependency> 

混淆班

@Configuration 
public class CommonConfig {

@Autowired
private Environment env;

@PostConstruct
public void init() {
   PropertyConfigurator.configure("log4j.properties");
}

@Bean(name = "debugLogger")
public Logger debugLogger() {
    return Logger.getLogger("regDebug");
}

@Bean(name = "infoLogger")
public Logger infoLogger() {
    return Logger.getLogger("regOperational");
}

@Bean(name = "errorLogger")
public Logger errorLogger() {
  ic Logger infoLogger() {
    return Logger.getLogger("regError");
}}

log4j。性质

log4j.logger.regDebug=DEBUG , stdout, regDebug
log4j.logger.regOperational=INFO, stdout , regOperational
log4j.logger.regError=ERROR , stdout , regError
log4j.rootLogger = INFO, console, regDebug, regOperational, regErro
log4j.appender.fileAppener=org.apache.log4j.RollingFileAppender

# STDOUT appender
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

#DEBUG LEVEL
log4j.appender.regDebug.Append=true
log4j.appender.regDebug=org.apache.log4j.DailyRollingFileAppender
log4j.appender.regDebug.Append=true
log4j.appender.regDebug.File=D:/Code/log/COMMON_DEBUG.log
log4j.appender.regDebug.MaxFileSize=10MB
log4j.appender.regDebug.MaxBackupIndex=10
log4j.appender.regDebug.DatePattern='.'yyyy-MM-dd-HH'.log'
log4j.appender.regDebug.layout=org.apache.log4j.PatternLayout
log4j.appender.regDebug.layout.ConversionPattern=%d{dd/MM/yyyy HH:mm:ss.SSS} || %5p || %t || %C{1} || %M:%L || %m%n

#INFO LEVEL

log4j.appender.regOperational=org.apache.log4j.DailyRollingFileAppender
log4j.appender.regOperational.Append=true
log4j.appender.regOperational.File=D:/Code/log/COMMON_ERROR.log
log4j.appender.regOperational.DatePattern='.'yyyy-MM-dd-HH'.log'
log4j.appender.regOperational.layout=org.apache.log4j.PatternLayout
log4j.appender.regOperational.layout.ConversionPattern=%d{dd/MM/yyyy HH:mm:ss.SSS} || %5p || %t || %m%n

#ERROR LEVEL

log4j.appender.regError=org.apache.log4j.DailyRollingFileAppender
log4j.appender.regError.Append=true
log4j.appender.regError.File=D:/Code/log/COMMON_ERROR.log
log4j.appender.regError.DatePattern='.'yyyy-MM-dd-HH'.log'
log4j.appender.regError.layout=org.apache.log4j.PatternLayout
log4j.appender.regError.layout.ConversionPattern=%d{dd/MM/yyyy HH:mm:ss.SSS} || %5p || %t || %C{1} || %M:%L || %m%n

共有1个答案

怀德馨
2023-03-14

Spring Boot提供与Log4J的集成通过sping-boo-starter-log4j依赖:

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-log4j</artifactId>
   <version>1.3.8.RELEASE</version>
</dependency>   

但首先需要排除默认Spring Boot的日志记录机制:

<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>

另外,确保您的log4j。属性位于src/main/resources下。在这种情况下,您不需要显式指定文件到PropertyConfigurator的路径,并且可以安全地删除init()方法。

请注意Log4J 1.2。17是相当过时的-它在2015年达到了生命的尽头。您可能需要考虑使用Log4j2来代替或使用LogSun-- Spring Booad使用的默认日志记录机制。

 类似资料:
  • 我希望将concur严格用作配置源。我正在使用spring cloud Consor配置来获取配置。我正在使用git2consul将文件加载到Consor并读取它们。根据spring云文档,我在构建中添加了以下内容。格拉德尔 并在我的application.properties 我面临的问题是,预期的属性没有加载到ConfigurationProperties bean中。在ConsultProp

  • 简介 Apache ShardingSphere 提供属性配置的方式配置系统级配置。 配置项说明 名称 数据类型 说明 默认值 sql-show (?) boolean 是否在日志中打印 SQL。 打印 SQL 可以帮助开发者快速定位系统问题。日志内容包含:逻辑 SQL,真实 SQL 和 SQL 解析结果。 如果开启配置,日志将使用 Topic ShardingSphere-SQL,日志级别是 I

  • 简介 Apache ShardingSphere 提供属性配置的方式配置系统级配置。 配置项说明 名称 数据类型 说明 默认值 sql-show (?) boolean 是否在日志中打印 SQL。 打印 SQL 可以帮助开发者快速定位系统问题。日志内容包含:逻辑 SQL,真实 SQL 和 SQL 解析结果。 如果开启配置,日志将使用 Topic ShardingSphere-SQL,日志级别是 I

  • 我们在Spring启动应用程序中使用多个数据源配置。这两个数据源都只属于 mysql。 使用以下配置多个数据源: https://medium . com/@ Joe clever/using-multiple-data sources-with-spring-boot-and-spring-data-6430 b 00 c 02e 7 pom.xml更改: 当我启动应用程序时,默认情况下,它会创

  • 主要内容:1. 概述,2. 源码解析1. 概述 属性配置 如果你的应用足够简单,例如,不需要多注册中心或多协议,并且需要在spring容器中共享配置,那么,我们可以直接使用 dubbo.properties作为默认配置。 Dubbo可以自动加载classpath根目录下的dubbo.properties,但是你同样可以使用JVM参数来指定路径:-Ddubbo.properties.file=xxx.properties。 重写与优先

  • 我目前想实现这样的东西: 但是在中,我们将重点关注authProvider()方法和configure() 随着最近的消息,已被弃用。经过研究,我发现了一件事: 所以我也不得不这么做 这解决了另一个问题。但现在,我发现了这个错误。 这也是我的用户服务 你们介意帮我解决这个问题!谢谢:) 我还想提一下,我还没有在网上找到答案