tomcatでlog4j2フォルダを設定するには?

メンバーサウンド

spring-boot warアプリケーションを実行していて、ロギングにtomcat8使用log4j2しています。問題:

  • ログが間違ったディレクトリにある
  • ログが正しく回転しない

log4j2.xml:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
       <Appenders>
        <RollingRandomAccessFile name="APP" fileName="logs/my-application.log"
                                 filePattern="logs/archive/my-application-%d{yyyy-MM-dd}.log">
            <PatternLayout pattern="%d %p %c{1.}: %m%n" charset="UTF-8" />
            <Policies>
                <TimeBasedTriggeringPolicy modulate="true"/>
            </Policies>
        </RollingRandomAccessFile>
    </Appenders>

    <Loggers>
       <Root level="DEBUG">
            <AppenderRef ref="APP" />
        </Root>
    </Loggers>
</Configuration>

pom.xml:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-web</artifactId>
    </dependency>

結果: ログは にあり/var/log/tomcat8/my-application.logます。のアーカイブ/var/log/tomcat8/my-application.log.gz

これは本当に奇妙です。正しいロガー ファイル名が取得されます。しかし、今はフォルダです。

質問: なぜ私の/logsフォルダが考慮されないのですか? 圧縮されたアーカイブ名にタイムスタンプが含まれていないのはなぜですか?

サイドノート:jar私のアイデアでアプリを実行すると、完全に機能します。/logsクラスパス ルートの下にフォルダーを自動的に作成します。そして、すべてのファイルは/archive、タイムスタンプ付きで午前 0 時に適切に移動さます

しかし、なぜこれが tomcat のように機能しないのですか?

メンバーサウンド

原因が見つかりました:

fileNameが なしで始まる場合/、それはcatalina.base=/var/lib/tomcat8シンボリックリンクであるそのフォルダーの内部に関連していると見なされます/logsしたがって、afileName="logs/myapp"はそのシンボリックリンクに従います。を指している/var/log/tomcat8.

その結果、すべてのファイルがそのフォルダーに書き込まれます。さらに、一部の tomcat のデフォルトlogrotateは、そのフォルダー内のすべてのファイルを取得して自動的に圧縮するようです。したがって、log4j は logrotate を適用する機会がありません。

解決策: ファイル名のサブパスを設定して追加するだけです。私は使用しました:

fileName="logs/logs/my-application.log"
filePattern="logs/logs/my-app..."

これにより、ログファイルが次の場所に移動します。

/var/log/tomcat8/logs
/var/log/tomcat8/logs/archive

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

NetBeansでlog4j2を設定する方法は?

分類Dev

log4j2のYAMLのサンプルデフォルト設定ファイルは何ですか?

分類Dev

Log4j2で特定のロガーレベルを設定する方法

分類Dev

log4j2カスタムAppenderでprintObjectをtrueに設定する

分類Dev

Log4j2は私の設定ファイルを見つけることができません

分類Dev

log4j2の構成ファイルを設定する必要がある頻度はどれくらいですか?

分類Dev

log4j2でマーカーが設定されていないことをフィルタリングする方法は?

分類Dev

log4j2プロパティのクラスにログレベルを設定する方法

分類Dev

Log4j2がユーザーのホームフォルダーにログインする

分類Dev

Tomcat8.5.15でlog4j2を構成する方法

分類Dev

Tomcatのlog4j2ログパスを変更するにはどうすればよいですか?

分類Dev

log4j2ファイルアペンダーはファイルのエンコード/フォーマットに何を使用しますか?

分類Dev

System.setPropertyまたはクラスパスなしでLog4j2プロパティファイルの場所を設定しますか?

分類Dev

log4j2のグローバルPatternLayoutを定義する方法は?

分類Dev

application.propertiesでlog4j2パスを定義する方法は?

分類Dev

log4j2でシャットダウンフックをプログラムで無効にする

分類Dev

Log4J 2でJNDI変数ルックアップをルックアップするときにデフォルト値を設定するにはどうすればよいですか?

分類Dev

プログラムで実行時にLog4J2アペンダーを追加する方法は?

分類Dev

log4j2のJSONログにフィールドを追加する方法

分類Dev

異なるログファイルでlog4j2を使用する方法は?

分類Dev

log4j2でrootLoggerの1つのアペンダーを動的にオンまたはオフにする方法は?

分類Dev

log4j StringMatchFilterをlog4j2に変換する方法は?

分類Dev

適切春ブーツとlog4j2を設定する方法?

分類Dev

Log4j2は、JVMが起動するたびに異なるファイル名で新しいファイルを作成します

分類Dev

slf4j-log4j12を使用してLog4jで構成ファイルを設定する

分類Dev

Log4j2がログをファイルに書き込まないのはなぜですか?

分類Dev

方法:Log4j2経由でログを記録するようにTomcat 9を構成する

分類Dev

log4j2でメールを送信するSpringBoot

分類Dev

Springbootで外部プロパティファイルを使用してlog4j2を使用するにはどうすればよいですか?

Related 関連記事

  1. 1

    NetBeansでlog4j2を設定する方法は?

  2. 2

    log4j2のYAMLのサンプルデフォルト設定ファイルは何ですか?

  3. 3

    Log4j2で特定のロガーレベルを設定する方法

  4. 4

    log4j2カスタムAppenderでprintObjectをtrueに設定する

  5. 5

    Log4j2は私の設定ファイルを見つけることができません

  6. 6

    log4j2の構成ファイルを設定する必要がある頻度はどれくらいですか?

  7. 7

    log4j2でマーカーが設定されていないことをフィルタリングする方法は?

  8. 8

    log4j2プロパティのクラスにログレベルを設定する方法

  9. 9

    Log4j2がユーザーのホームフォルダーにログインする

  10. 10

    Tomcat8.5.15でlog4j2を構成する方法

  11. 11

    Tomcatのlog4j2ログパスを変更するにはどうすればよいですか?

  12. 12

    log4j2ファイルアペンダーはファイルのエンコード/フォーマットに何を使用しますか?

  13. 13

    System.setPropertyまたはクラスパスなしでLog4j2プロパティファイルの場所を設定しますか?

  14. 14

    log4j2のグローバルPatternLayoutを定義する方法は?

  15. 15

    application.propertiesでlog4j2パスを定義する方法は?

  16. 16

    log4j2でシャットダウンフックをプログラムで無効にする

  17. 17

    Log4J 2でJNDI変数ルックアップをルックアップするときにデフォルト値を設定するにはどうすればよいですか?

  18. 18

    プログラムで実行時にLog4J2アペンダーを追加する方法は?

  19. 19

    log4j2のJSONログにフィールドを追加する方法

  20. 20

    異なるログファイルでlog4j2を使用する方法は?

  21. 21

    log4j2でrootLoggerの1つのアペンダーを動的にオンまたはオフにする方法は?

  22. 22

    log4j StringMatchFilterをlog4j2に変換する方法は?

  23. 23

    適切春ブーツとlog4j2を設定する方法?

  24. 24

    Log4j2は、JVMが起動するたびに異なるファイル名で新しいファイルを作成します

  25. 25

    slf4j-log4j12を使用してLog4jで構成ファイルを設定する

  26. 26

    Log4j2がログをファイルに書き込まないのはなぜですか?

  27. 27

    方法:Log4j2経由でログを記録するようにTomcat 9を構成する

  28. 28

    log4j2でメールを送信するSpringBoot

  29. 29

    Springbootで外部プロパティファイルを使用してlog4j2を使用するにはどうすればよいですか?

ホットタグ

アーカイブ