java日志是从intellij运行而不是从本地tomcat服务器运行时生成的

9q78igpj  于 2021-07-09  发布在  Java
关注(0)|答案(3)|浏览(300)

我有一个简单的spring引导项目,我使用log4j2进行日志记录。当我在intellij中运行我的应用程序时,我可以看到在指定的位置生成了日志文件,但是当我将其打包为war文件并将其部署到本地tomcat服务器时,没有生成日志。你知道吗?
==========编辑============================

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn">
    <Properties>
        <Property name="log.dir">C:\\users\myname\Desktop</Property> 
        <Property name="app.name">myapp</Property>
    </Properties>

    <Appenders>
        <RollingFile name="fileLogger" fileName="${log.dir}/app-info.log" filePattern="${log.dir}/app-info-%d{yyyy-MM-dd}.log">
            <PatternLayout>
                <pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true" />
            </Policies>
        </RollingFile>

        <Console name="console" target="SYSTEM_OUT">
            <PatternLayout   pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n" />
        </Console>
    </Appenders>
    <Loggers>
        <Logger name="com.myapp.mypackage" level="info" additivity="true">
            <appender-ref ref="fileLogger" level="info" />
        </Logger>
        <Root level="debug" additivity="false">
            <appender-ref ref="console" />
        </Root>
    </Loggers>
</Configuration>

这不完全是我的log4j2配置文件,但我的也很简单。我有一个滚动文件appender和我想记录的应用程序信息到它。如果我在intellij中运行我的应用程序,日志文件将被生成,并且我可以看到日志流入。
我也试过c:/users/myname/desktop,它对intellij有效,但对我本地的tomcat无效。
同样的路径对我的朋友有用,它在他的桌面上生成了日志文件,但是他想不出他做过的任何具体配置。
我还尝试将log.dir设置为一堆废话,并将其放在本地tomcat服务器中,它实际上运行时没有出错。所以我认为tomcat根本就没有查看我的log4j2.xml?
===================更新============================
好的,我删除了环境变量中的catalina\u home,并使用了另一个版本的tomcat,它成功了。
我试过tomcat 8.5,9.0.30和9.0.37。在设置catalina\u home环境变量之前,9.0.30不会运行;设置后没有生成日志。
我删除了9.0.30,尝试了8.5。我把catalinaèu的主页改成了8.5文件夹,没有生成日志。
我删除了9.0.30,改用了9.0.37,删除了所有catalina\u的home变量,并且成功了。已生成日志。

9bfwbjaz

9bfwbjaz1#

在tomcat中运行时,很可能不允许日志文件的生成路径。你应该看看卡特琳娜的日志。

yfjy0ee7

yfjy0ee72#

缺少log4j配置的问题通常与应用程序找不到您认为应该找到的log4j配置文件有关。您可以添加java参数 -Dlog4j.debug=true 在应用程序搜索配置文件时从中获取一些诊断信息。您还可以直接告诉它使用带有选项的特定文件 -Dlog4j.configuration=file:/<apath>/log4j.properties . 在容器(如tomcat)中运行应用程序会给配置的搜索位置增加更高级别的复杂性。

egdjgwm8

egdjgwm83#

好的,我删除了环境变量中的catalina\u home,并使用了另一个版本的tomcat,它成功了。。

相关问题