logbackはログファイル名の問題を解決します.


1.シーン1:logbackの出力パスはすべて新しいディレクトリの下を指したいのですが、変更するといろいろなところがあります.......
ソリューション:グローバル変数を構成し、変更するときにあちこちで変更しないようにします.これにより、変更する必要があります.
  
<configuration>
    <property name="USER_HOME" value="/home/sebastien" />
    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>${USER_HOME}/myApp.log</file>
        <encoder>
            <pattern>%msg%n</pattern>
        </encoder>
    </appender>
    <appender name="FILEBACK" class="ch.qos.logback.core.FileAppender">
        <file>${USER_HOME}/myApp_bak.log</file>
        <encoder>
            <pattern>%msg%n</pattern>
        </encoder>
    </appender>
    <root level="debug">
        <appender-ref ref="FILE" />
<appender-ref ref="FILEBACK" />
    </root>
</configuration>
2.シーン2:同じマシン上の2つのWebコンテナに1つのWebプロジェクトを配置したいが、ログは単独で出力したい.
解決策:webコンテナにスクリプトを起動する異なるパラメータを与え、出力ディレクトリを設定し、logbackに読ませる
起動スクリプトjava-DUSER_に追加HOME="/home/sebastien"JavaWeb
<configuration>
  <appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>${USER_HOME}/myApp.log</file>
    <encoder>
      <pattern>%msg%n</pattern>
    </encoder>
  </appender>
  <root level="debug">
    <appender-ref ref="FILE" />
  </root>
</configuration>

3.シーン3:ログファイルに相対的に一意の名前を付けたい.
解決策:ファイル名としてタイムスタンプを使用
<configuration>
  <!-- Insert the current time formatted as "yyyyMMdd'T'HHmmss" under
       the key "bySecond" into the logger context. This value will be
       available to all subsequent configuration elements. -->
  <timestamp key="bySecond" datePattern="yyyyMMdd'T'HHmmss"/>

  <appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <!-- use the previously created timestamp to create a uniquely
         named log file -->
    <file>log-${bySecond}.txt</file>
    <encoder>
      <pattern>%logger{35} - %msg%n</pattern>
    </encoder>
  </appender>

  <root level="DEBUG">
    <appender-ref ref="FILE" />
  </root>
</configuration>