2017-03-09 19 views
-1

私はWebアプリケーションを持っています。このWebアプリケーションのログファイルをlog4jのSyslog Appenderを使用してリモートマシンに書き込みたいとします。ログファイルはSyslogサーバファイル名はClass.Logです。私は適切なログファイル名を与えたいと思います。私はこれをどうやってできますか? Syslogアペンダを使用していないlog4j2についてはlog4jを使用してJavaのsyslogサーバに別のログファイルを書き込む方法

+0

あなたのSyslogサーバーに「宛先」モードを持っている必要があります。ここで、.logファイルの名前を宣言する必要があります。 –

+0

お返事ありがとうございました。しかし、ここではrsyslog.confファイルを使用してログファイルの場所を設定しています。以下の設定を使用しています:$ template RemoteLogs、 "/ var/log /%HOSTNAME%/%PROGRAMNAME%.log" *リモートログ フォルダはHOSTNAMEを使用して作成されますが、ログファイル名はCLASS.log –

+0

として表示されます。ハム。あなたがSyslogサーバにとって難しいと思われるものは、正確なクラス名を取るためにLogstashのようなものが必要です。それを達成するための簡単な方法は、たくさんのクラスが書かれていない場合、それぞれが異なるポートに2つ(またはあなたが持っている異なるクラス)のSyslogサーバを作成することです。次に、クライアント側で、2つの異なるsyslogAppendersを定義します(ポート1用とポート2用)。 –

答えて

0

は私が作業例を持っています。私は(:smtradfwd.cPatternLayout要素は、ワイヤにデータを送信するための伝統的な転送フォーマットをシミュレートし、参照してください)。この方法でSocketアペンダを使用していた

<Configuration status="error" strict="true" monitorInterval="30" 
      name="XMLConfigTest" packages="org.apache.logging.log4j.test"> 
    <Properties> 
     <Property name="REMOTE_HOST">some.ip.address</Property> 
     <Property name="APP_NAME">rest-server</Property> 
    </Properties> 

    <Appenders> 
     <Socket name="REMOTE" host="${REMOTE_HOST}" port="514" protocol="TCP"> 
      <PatternLayout pattern="&lt;128&gt;%d{MMM dd HH:mm:ss} ${hostName} ${APP_NAME}[${sys:PID}]: %-5level %c %M - %msg%xEx%n" /> 
     </Socket> 
    </Appenders> 
    <Loggers> 
     <Root level="INFO"> 
     <AppenderRef ref="REMOTE"/> 
    </Root> 
    </Loggers> 
</Configuration> 

<128>は、施設LOCAL0を意味します。参照:rsyslog.h。ワイヤでは(伝統的な転送フォーマットを使用する場合)、すべてのsyslogメッセージは<FACILITY_NUMBER>で始まります。サーバ側で

、rsyslogのは次のように構成する必要があります。

# provides TCP syslog reception 
$ModLoad imtcp 
$InputTCPServerRun 514 

# Dynamic file 
template (name="AppFile" type="string" string="/var/log/remote/%programname%.log") 

if ($fromhost-ip == 'the.remote.ip.address') then { 

    if ($programname == 'rest-server' and $syslogfacility-text == 'local0') then { 
     action(type="omfile" Sync="on" FileCreateMode="0640" DynaFile="AppFile") 
     & stop 
    } 

} 
関連する問題