【问题标题】:How to configure jboss 7 to write logs to different folder如何配置 jboss 7 将日志写入不同的文件夹
【发布时间】:2023-04-09 04:08:01
【问题描述】:

我正在使用 Jboss 7.1.1,并且我有以下日志定义:

<subsystem xmlns="urn:jboss:domain:logging:1.1">
        <console-handler name="CONSOLE">
            <level name="INFO"/>
            <formatter>
                <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
            </formatter>
        </console-handler>
        <periodic-rotating-file-handler name="FILE">
            <formatter>
                <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
            </formatter>
            <file relative-to="jboss.server.log.dir" path="server.log"/>
            <suffix value=".yyyy-MM-dd"/>
            <append value="true"/>
        </periodic-rotating-file-handler>
        <size-rotating-file-handler name="ACEII">
            <level name="DEBUG"/>
            <formatter>
                <pattern-formatter pattern="%z{utc}%d{dd/MM/yyyy HH:mm:ss,SSS} %-5p [%c] %s%E%n"/>
            </formatter>
            <file relative-to="jboss.server.log.dir" path="ACEII.log"/>
            <rotate-size value="10M"/>
            <max-backup-index value="10"/>
            <append value="true"/>
        </size-rotating-file-handler>
        <logger category="ace2" use-parent-handlers="false">
            <level name="DEBUG"/>
            <handlers>
                <handler name="ACEII"/>
            </handlers>
        </logger>
        <logger category="com.arjuna">
            <level name="WARN"/>
        </logger>
        <logger category="org.apache.tomcat.util.modeler">
            <level name="WARN"/>
        </logger>
        <logger category="sun.rmi">
            <level name="WARN"/>
        </logger>
        <logger category="jacorb">
            <level name="WARN"/>
        </logger>
        <logger category="jacorb.config">
            <level name="ERROR"/>
        </logger>
        <root-logger>
            <level name="INFO"/>
            <handlers>
                <handler name="CONSOLE"/>
                <handler name="FILE"/>
            </handlers>
        </root-logger>
    </subsystem>

我希望将 ACE 日志写入不同的文件夹,因此我尝试在 relative-to 属性中放置不同的值,但似乎没有任何效果,知道如何做吗?

【问题讨论】:

    标签: java logging jboss7.x


    【解决方案1】:

    你需要去掉relative-to,在path属性中输入绝对路径。

        <size-rotating-file-handler name="ACEII">
            <level name="DEBUG"/>
            <formatter>
                <pattern-formatter pattern="%z{utc}%d{dd/MM/yyyy HH:mm:ss,SSS} %-5p [%c] %s%E%n"/>
            </formatter>
            <file path="/var/log/myLogDir/ACEII.log"/>
            <rotate-size value="10M"/>
            <max-backup-index value="10"/>
            <append value="true"/>
        </size-rotating-file-handler>
    

    您还可以通过在配置中添加路径来使用自己的相对路径。

    在 CLI 中,您只需执行:/path=my.log.dir:add(path="/var/log")

    如果您只想编辑 xml,请添加以下内容。

    <paths>
        <path name="my.log.dir" path="/var/log"/>
    </paths>
    

    例如,如果您想在默认日志目录中定义特定目录,则路径本身可以具有相对路径。

    一旦你定义了你的路径,你就可以使用你在relative-to属性中给路径的名字。

    【讨论】:

    • 谢谢,但是绝对路径并不像你想象的那样好,我用环境变量尝试过,但没有成功。有没有办法像'jboss.server.log.dir'这样定义我自己的路径,这样我就可以将'relative-to'设置为那个路径?我尝试使用 'wrapper.app.parameter' 和 'wrapper.java.additional' 来定义此路径但没有成功(我正在使用 java wrapper 服务)
    • 见上文。我添加了有关如何执行此操作的说明。
    • 再次感谢,这确实是我所需要的进步,但同样,它似乎不允许 Env.变量。
    • 您可以使用任何系统属性并在文件路径中添加替换,如下所示 添加新系统属性“-Dmyserverlog.目录”。
    【解决方案2】:

    这对我来说很好用。

    domain.sh -Djboss.server.log.dir="my custom logs dir"
    

    【讨论】:

      【解决方案3】:

      知道这是一个较老的问题,但仍然发现它与 JBOSS EAP 7 相关

      我发现 James 的回复很有见地 - https://developer.jboss.org/wiki/Wildfly82LogPathChange

      我能够编辑standalone.conf 并在那里指定自定义日志目录。

      这也是一个可以在域模式下编辑的 domain.conf。

      只需将以下内容添加到文件末尾即可:

      #Specify the log dir
      JAVA_OPTS="$JAVA_OPTS -Djboss.server.log.dir=my custom logs dir"
      

      据我了解,对于 Windows,可以更新 .bat 文件而不是 .conf 文件。

      【讨论】:

        【解决方案4】:

        找到答案:)

        我正在使用 Java 服务包装器将 Jboss 安装为 Windows 服务,并且该服务的配置文件位于某个路径中,所以我注意到如果我删除 relative-to 属性,它会将日志写入配置文件所在的文件夹。

        我只需要像这样定义它:

        <size-rotating-file-handler name="ACEII">
                    <level name="DEBUG"/>
                    <formatter>
                        <pattern-formatter pattern="%z{utc}%d{dd/MM/yyyy HH:mm:ss,SSS} %-5p [%c] %s%E%n"/>
                    </formatter>
                    **<file path="../Log/ACEII.log"/>**
                    <rotate-size value="10M"/>
                    <max-backup-index value="10"/>
                    <append value="true"/>
                </size-rotating-file-handler>
        

        这对我有用。

        【讨论】:

        • 这正是您所要求的。此外,您看到的行为也无法保证。 “../”可以放在配置目录以外的其他地方。
        【解决方案5】:

        这是我用的;然后我使用logrotate 处理日志轮换:

            <file-handler name="FILE" autoflush="true">
                <formatter>
                    <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
                </formatter>
                <file relative-to="jboss.server.log.dir" path="server.log"/>
                <append value="true"/>                                                                                                                             
            </file-handler>
        

        显然,您可以根据需要对其进行修改。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-04-17
          • 2012-05-11
          • 2016-06-30
          • 1970-01-01
          • 2017-09-25
          • 2023-03-31
          相关资源
          最近更新 更多