<?xml version="1.0" encoding="UTF-8"?>
<!-- Reviewed: no -->
<!-- EN-Revision: 24249 -->
<sect2 id="zend.log.writers.syslog">
    <title>システムログへの書き込み</title>

    <para>
        <classname>Zend_Log_Writer_Syslog</classname>は、
        システムログ (syslog) にログ項目を書きます。
        内部的には、それは<acronym>PHP</acronym>の
        <methodname>openlog()</methodname>や<methodname>closelog()</methodname>、
        そして<methodname>syslog()</methodname>関数の代わりです。
    </para>

    <para>
        <classname>Zend_Log_Writer_Syslog</classname>が役立つ例の１つは、
        クラスター形成されたマシンからシステムログ機能を通して集計されるログです。
        多くのシステムでは、システム・イベントをリモートでログ収集できます。
        それにより、システム管理者が単一のログファイルでマシンのクラスタをモニターできるようになります。
    </para>

    <para>
        デフォルトで、生成されるsyslogメッセージはすべて、
        文字列「Zend_Log」という接頭辞が付きます。
        コンストラクタ、またはアプリケーション・アクセッサにアプリケーション名を渡すことで、
        そのようなログメッセージを特定する異なる「アプリケーション」名を指定するかもしれません。
    </para>

    <programlisting language="php"><![CDATA[
//インスタンス生成時に任意で "application" キーを渡します。
$writer = new Zend_Log_Writer_Syslog(array('application' => 'FooBar'));

//そのほかいつでも
$writer->setApplicationName('BarBaz');
]]></programlisting>

    <para>
        システムログでは "facility" やアプリケーション・タイプ、
        またはログ収集メッセージを指定できます。
        多くのシステム・ロガーは、実は機能毎に異なるログファイルを生成します。
        それは、前と同じように、サーバ活動をモニターする管理者を助けます。
    </para>

    <para>
        コンストラクタ、またはアクセッサでログ機能を指定するかもしれません。
        それは、<ulink url="http://php.net/openlog">openlog() マニュアル</ulink>で定義される
        <methodname>openlog()</methodname>定数のうちの１つでなければなりません。
    </para>

    <programlisting language="php"><![CDATA[
//インスタンス生成時に任意で "facility" キーを渡します。
$writer = new Zend_Log_Writer_Syslog(array('facility' => LOG_AUTH));

//そのほかいつでも
$writer->setFacility(LOG_USER);
]]></programlisting>

    <para>
        ログ収集時に、デフォルトの<classname>Zend_Log</classname>
        優先度定数を使い続けるかもしれません。
        内部的には、それらは適切な<methodname>syslog()</methodname>
        優先度定数にマップされます。
    </para>
</sect2>
