0

最近、Liferay/Tomcat のログが、複数のポートレットが同じファイルにログを記録しているために詰まってしまうという問題があり、問題を追跡するのが難しい場合があります。問題を追跡しやすくするために、ポートレットごとにログ ファイルを作成することにしました。いくつかの役立つ記事を見つけましたが、何を試しても、カスタム ログ ファイルを作成することができません (拡張子によってに書かれている)。この記事に従って、次の行を liferay-plugin-package.properties に追加しました。

portal-dependency-jars=\
    log4j.jar,\
    log4j-extras.jar

そして、私の log4j.xml は次のようになります。

<?xml version="1.0"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}:%L] %m%n" />    
        </layout>
    </appender>

    <appender name="FILE" class="org.apache.log4j.rolling.RollingFileAppender">

        <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
            <param name="FileNamePattern" value="../../logs/portrait-manager-portlet.%d{yyyy-MM-dd}.log" />
        </rollingPolicy>

        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}:%L] %m%n" />
        </layout>
    </appender>

    <!-- test is a legitimate package name in my code -->
    <category name="com.test" >
        <priority value="DEBUG" />
    </category>

    <root>
        <priority value="INFO" />
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="FILE" />
    </root>
</log4j:configuration>

そして最後に、記事に従って、この方法でロギングが行われます。

private static Logger log = Logger.getLogger(PortraitManagerServiceImpl.class);
log.info("testing log4j logging");

繰り返しますが、前述のように、コンソールのログは正常に機能しますが、ログ ファイルは作成されないため、書き込むことはできません。誰かがこの行動について提案や洞察を持っている場合は、共有していただければ幸いです.

編集:私はLiferay 6.2 b1とtomcat 7.0.40を使用しています(Liferay 6.2バンドルに含まれています)

4

3 に答える 3

0

私は使用log4j.propertiesしていて、その作業をしています。プロパティファイルで試す

# Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE
log4j.category.SimpleSign=DEBUG,FILE

# Define the file appender
log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
# Set the name of the file
#log4j.appender.FILE.File=${file.name}/something.out
log4j.appender.FILE.File=${file.name}

# Set the immediate flush to true (default)
log4j.appender.FILE.ImmediateFlush=true

# Set the threshold to debug mode
log4j.appender.FILE.Threshold=debug

# Set the append to false, should not overwrite
log4j.appender.FILE.Append=true

# Set the DatePattern
log4j.appender.FILE.DatePattern='-' dd-MM-yyyy

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n

そして、呼び出してファイルパスを動的に設定します

System.setProperty("file.name", FILE PATH);
于 2013-09-05T15:30:01.060 に答える
0

プロパティ ファイルにしきい値を追加します。

log4j.appender.default.file.threshold=INFO,DEBUG

ジャバファイルで

例: ロガー APPLICATION_LOGS = Logger.getLogger("rootLogger"); APPLICATION_LOGS.debug("開始"); または APPLICATION_LOGS.info("開始"); 動作します。

于 2014-11-22T18:46:14.807 に答える