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

如何使用Spring Boot 1.3.6.Release使Log4j2可由环境配置

公西姚石
2023-03-14

我想把这个放在我的房子里

#Place holders for log4j2.xml file
log.file.path=/opt/tomcat/logs
log.file.name=dummydummy
log.file.size=100 MB
log.level=DEBUG

下面是我的log4j2。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="30">
    <Properties>
        <Property name="PID">????</Property>
        <property name="name">my-log</property>
    </Properties>
    <Appenders>
        <RollingFile name="file" fileName="${log.file.path}${log.file}.log"
            filePattern="${log.file.path}${log.file}-%d{yyyy-MM-dd}-%i.log.gz">
            <PatternLayout
                pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${sys:PID} --- [%t] %c{1}(%M:%L) : %m%n%wEx" />
            <Policies>
                <TimeBasedTriggeringPolicy /><!-- Rotated everyday -->
                <SizeBasedTriggeringPolicy size="${log.file.size}" /> <!-- Or every 100 MB -->
            </Policies>
        </RollingFile>
        <Console name="Console" target="SYSTEM_OUT" follow="true">
            <PatternLayout
                pattern="%clr{%d{yyyy-MM-dd HH:mm:ss.SSS}}{faint} %clr{%5p} %clr{${sys:PID}}{magenta} %clr{---}{faint} %clr{[%t]}{faint} %clr{%c{1}(%M:%L)}{cyan} %clr{:}{faint} %m%n%wEx" />
        </Console>
    </Appenders>
    <Loggers>
        <Logger name="org.hibernate.validator.internal.util.Version"
            level="warn" />
        <Logger name="org.apache.coyote.http11.Http11NioProtocol" level="warn" />
        <Logger name="org.apache.tomcat.util.net.NioSelectorPool" level="warn" />
        <Logger name="org.apache.catalina.startup.DigesterFactory" level="error" />
        <Logger name="org.springframework.web" level="error" />

        <Root level="${log.level}">
            <AppenderRef ref="Console" />
            <AppenderRef ref="file" />
        </Root>
    </Loggers>
</Configuration>

共有1个答案

公羊凌
2023-03-14

properties lookup元素允许从log4j配置中的外部属性文件引用属性。对于您的示例,它应该如下所示:

>

  • 文件env.properties包含以下属性:

    log.file.path=/opt/tomcat/logs
    log.file.name=dummydummy
    log.file.size=100 MB
    log.level=DEBUG
    

    属性查找应定义为log4j2.xml的属性:

    <Configuration>  
      <Properties>  
          <property name="log.file.path">${bundle:env:log.file.path}</property>  
          <property name="log.file.name">${bundle:env:log.file.name}</property>  
          <property name="log.file.size">${bundle:env:log.file.size}</property>  
          <property name="log.level">${bundle:env:log.level}</property>   
      </Properties>  
    

  •  类似资料:
    • 我在$CATALINA_HOME/lib下有log4j2jar: log4j-api-2.10.0.jar log4j-core-2.10.0.jar log4j-jul-2.10.0.jar export JAVA_OPTS=“${JAVA_OPTS}-djava.util.logging.manager=org.apache.logging.log4j.jul.logmanager” 我已经删

    • 在xml方式中发布和引用服务的方式如下。 sofa:service 元素表示发布服务, sofa:reference 元素表示引用服务。 sofa:binding 表示服务发布或引用的协议。 <bean id="personServiceImpl" class="com.alipay.sofa.boot.examples.demo.rpc.bean.PersonServiceImpl"/> <so

    • Heroku在日志中标识它正在尝试访问一个我没有使用的MongoDB碎片(但使用过一次)。错误消息显示: “无法连接到服务器[Swarmage-Shard-00-00-ekq8j.gcp.MongoDB.net:27017]” 但我不知道它为什么要连接那个服务器。 我正在将应用程序部署到。Heroku链接到我的数据库。我可以通过mongo shell与数据库交互。当我在本地服务器上运行时,post

    • 问题内容: 在我目前的公司中,我们正在考虑使用jPOS与其他系统进行ISO 8583集成。我阅读免费文档已有一段时间了,但是仍然有很多空白。例如: jPOS应该如何在产品中工作?我是否应该启动Q2服务器,它会像端点接收或发送ISO8583消息那样工作?我应该如何将其与我的应用服务器集成? 在哪些情况下以及如何使用jPOS空间? 我的基本用例是发送/接收ISO消息。我需要所有这些东西吗? 是否还有其

    • 我最近切换到ApacheLog4J2,仍然找不到使用log4j2配置hibernate日志的方法。xml。 因为我找不到解决这个问题的方法,我仍然使用log4j.properties文件显式Hibernate。这不是最好的解决方案,因为我的log4j2.xml使用JPA appender(将日志写入数据库)。我不想为Hibernate编写单独的逻辑。 有没有办法使用log4j2配置Hibernat

    • 我是unix新手。我有下面的log4j2配置文件。当我在unix环境中使用此文件时,文件应用程序。未创建日志。有人能告诉我如何在unix环境中将日志重定向到文件吗