単一ユーザーのロギングの有効化

XML ファイルを使用するようにロギングを構成してから XML ファイルを編集することによって、単一ユーザーのロギングを有効にすることができます。

このタスクについて

ロギングは、次の 2 つのファイルのいずれかを使用して構成されます。log4j.propertiesまたは log4j.xml デフォルトでは、log4j.properties ファイルが使用されます。

XML ファイルを使用するようにロギングを構成してから XML ファイルを編集することによって、ユーザー単位のロギングを有効にすることができます。Marketing Platform をクラスターの配置で構成している場合は、XML ファイルを全ノードにコピーしてください。

注: XML ロギングを有効にすると、XML 構成ファイルの作成または変更が行われていないかを定期的に検査するスレッドが生成されます。変更またはファイルの作成が検出されると、log4j を構成するために XML ファイルが読み取られます。このポーリング間隔は 60 秒です。

手順

  1. 以下の JVM パラメーターを設定して、log4j.xml を使用するようにロギングを構成します。

    -DENABLE_PLATFORM_LOG4J_XML_LOGGING=true

    ユーザー単位のロギングを有効にするには、この値を true に設定する必要があります。

    Marketing Platform をクラスターの配置で構成している場合は、クラスターの全ノードでこの JVM パラメーターを設定します。

  2. ユーザー単位のロギングで記録するユーザー・アカウントを指定するには、log4j.xml ファイルを編集し、filter タグにユーザーを追加します。filter タグに追加されたユーザーのログが、指定されたファイルに保存されます。filter タグなしで appender を作成することもできます。
    • 複数のタグを log4j.xml ファイルに追加して、特定のユーザーごとに別々のログ・ファイルを作成することができます。新しいユーザー固有のログ・ファイルごとに、新しい appender を追加する必要があります。
    • デフォルトでログ・ファイルは Platform_Home /Platform/logs フォルダーに作成され、platform.log という名前が付けられます。これとは異なる有効なパスとファイル名を指定することもできます。それぞれのフォルダーでログ・ファイルを生成するために、絶対パスまたは完全パスを指定する必要があります。
    • ユーザー固有のログと全ユーザーのログの両方が必要な場合は、filter タグを定義しないで、新規名を付けた appender タグを追加します。appender には固有の名前を付ける必要があります。
    • この新しい appender のルート・タグの下に、対応する項目を追加します。
  3. Marketing Platform をクラスターの配置で構成している場合は、編集した XML ファイルをクラスターの全ノードにコピーします。

    以下の例に示すようなコマンドを使用できます。

    -DPLATFORM_LOG4J_XML_FILE=log4j_node1.xml

    log4j_node1.xml ファイルは log4j.xml ファイルのコピーです。コピーしたファイルには、任意の名前を使用できます。

以下の例を検討してください。この例では、ユーザー asm_admin のログと、その他のすべてのユーザーのログが収集されます。
<appender name="Console" class="org.apache.log4j.ConsoleAppender">
  <param name="ImmediateFlush" value="true"/>
  <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%-5p %c - %m%n"/>
  </layout>
  <filter class="com.unica.manager.logger.UserMatchFilter">
    <param name="StringToMatch" value="asm_admin" />
  </filter>
</appender>

<!-- The following section is for user specific logs for the user asm_admin -->
<appender name="System" class="org.apache.log4j.RollingFileAppender">
  <param name="File" value="${UNICA_PLATFORM_LOG_FILE}"/> 
  <!-- <param name="Encoding" value="utf-8"/>
  <param name="Append" value="true"/>
  <param name="ImmediateFlush" value="false"/>
  -->
  <param name="MaxBackupIndex" value="1"/>
  <param name="MaxFileSize" value="10MB"/>
  <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%d{DATE} - %-5p - %m%n"/>
  </layout>
  <filter class="com.unica.manager.logger.UserMatchFilter">
    <param name="StringToMatch" value="asm_admin" />
  </filter>
</appender>

<!-- The following section is for logs for all the users -->
<appender name="SystemAllUsers" class="org.apache.log4j.RollingFileAppender">
  <param name="File" value="<LOG_FILE_PATH>"/><!--the absolute path for the log file-->
  <!-- <param name="Encoding" value="utf-8"/>
  <param name="Append" value="true"/>
  <param name="ImmediateFlush" value="false"/>
  -->
  <param name="MaxBackupIndex" value="1"/>
  <param name="MaxFileSize" value="10MB"/>
  <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%d{DATE} - %-5p - %m%n"/>
  </layout>
</appender>

<!-- <logger name="com.unica.manager.configuration.ConfigurationManager">
    <level value="TRACE"/>
  </logger>
  <logger name="com.unica.suite.scheduler.server.manager.TaskManager">
    <level value="DEBUG"/>
  </logger>
  <logger name="org.hibernate.util.JDBCExceptionReporter">
    <level value="ERROR"/>
  </logger>
-->
<root>
  <level value="WARN"/>
    <appender-ref ref="System"/>
    <appender-ref ref="Console"/>
    <appender-ref ref="SystemAllUsers"/>		
</root>