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

Openshift:Spring boot:log4j设置——配置和查找应用程序日志文件

汝弘深
2023-03-14

我在Redhat/OpenShift上的Spring Boot应用程序使用显示的log4j2.xml文件。

问题是我找不到应用程序日志文件

我的问题是:

  • 下面我描述了在OpenShift上配置Spring Boot的log4j日志记录的方式。这是正确的吗?
  • 在哪里可以找到应用程序日志文件日志/app2.log?它不在OpenShift上。
  • 是的,我知道还有一个通过application-openshift.properties设置的app.log文件。那个从未改变过。为什么?

有人建议我在application-openshift.properties文件中使用这个。省略这些行没有任何后果。

logging.file = ${OPENSHIFT_DATA_DIR}/logs/app.log
logging.level = INFO

我的src/main/资源/log4j2.xml文件包含以下内容。我也为控制台配置了它用于本地测试。是的,后来我可以区分每个环境(现在不行)。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
        </Console>
        <File name="File" fileName="logs/app2.log">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
        </File>
    </Appenders>
    <Loggers>
        <Root level="debug">
            <AppenderRef ref="File" />
        </Root>
        <Logger name="nl.xyz.mod" level="debug" additivity="false">
            <AppenderRef ref="File" />
        </Logger>
        <Root level="info">
            <AppenderRef ref="Console" />
        </Root>
        <Logger name="nl.xyz.mod" level="info" additivity="false">
            <AppenderRef ref="Console" />
        </Logger>
    </Loggers>
</Configuration>

共有1个答案

韦胜泫
2023-03-14

终于解决了!

log4j2中的更改。xml文件标记为**…***。

可以通过OpenShift环境变量为日志文件指定一个好的目标。在log4j2中。您可以通过${env:OPENSHIFT_DATA_DIR}指定这个xml文件。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
        </Console>
        <!-- ** location of the file is: ${env:OPENSHIFT_DATA_DIR}/logs/app2.log" ** --> 
        <File name="File" fileName="${env:OPENSHIFT_DATA_DIR}/logs/app2.log">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
        </File>
    </Appenders>
    <Loggers>
        <Root level="debug">
            <AppenderRef ref="File" />
        </Root>
        <Logger name="nl.deholtmans.tjm1706" level="debug" additivity="false">
            <AppenderRef ref="File" />
        </Logger>
        <Root level="info">
            <AppenderRef ref="Console" />
        </Root>
        <Logger name="nl.deholtmans.tjm1706b" level="info" additivity="false">
            <AppenderRef ref="Console" />
        </Logger>
    </Loggers>
</Configuration>
 类似资料:
  • 日志和配置的重要性 前面已经介绍过日志在我们程序开发中起着很重要的作用,通过日志我们可以记录调试我们的信息,当初介绍过一个日志系统seelog,根据不同的level输出不同的日志,这个对于程序开发和程序部署来说至关重要。我们可以在程序开发中设置level低一点,部署的时候把level设置高,这样我们开发中的调试信息可以屏蔽掉。 配置模块对于应用部署牵涉到服务器不同的一些配置信息非常有用,例如一些数

  • 你可以查看或更改 Navicat Monitor 的应用程序设置,例如端口、网站网址和 IP 地址。若要配置应用程序设置,请前往“配置”->“应用程序设置”。 这里列出了 Navicat Monitor 的应用程序设置。你可以编辑以下设置: 端口 Navicat Monitor 将侦听的端口号。 网站网址 将用于警报电子邮件内的 Navicat Monitor 网站网址。 IP 地址 如果机器已被

  • 我尝试了一个显示其他响应的测试用例,我将一步一步地解释它: > 我在我的设备上安装了MDM配置文件,这提示我安装了一个应用程序,并且我成功地安装了它。应用程序已进入“应用程序中的配置文件”部分。 然后我手动删除了应用程序。

  • 问题内容: 好的,所以我不想在这里展开一场圣战,但是我们正在努力巩固处理应用程序配置文件的方式,我们正在努力决定采用哪种最佳方法。目前,我们分发的每个应用程序都在使用其自己的临时配置文件,无论是属性文件(ini样式),XML还是JSON(目前仅在内部使用!)。 目前,我们的大多数代码是Java,因此我们一直在研究Apache Commons Config ,但是我们发现它非常冗长。我们还研究了XM

  • 我正在使用log4j2库来管理日志记录过程。我创建了一个名为log4j2的配置文件。包含appender和logger配置的xml。然后,我在每个类中定义了一个记录器 我没有在任何地方指定conf文件的名称,所以我认为库隐式地获取并读取它。 现在,我需要以jar文件的形式提供我的应用程序,所以我需要使配置文件可用,以便用户可以修改和配置它。 在我的例子中,我建议在jar文件级别创建一个XXX文件夹

  • 本文向大家介绍如何配置Spring Boot应用程序日志记录?相关面试题,主要包含被问及如何配置Spring Boot应用程序日志记录?时的应答技巧和注意事项,需要的朋友参考一下 Spring Boot附带了对Log4J2,Java Util Logging和Logback的支持。它通常预先配置为控制台输出。可以通过仅在application.properties文件中指定logging.leve