概要
CO-Store 関係のログファイルは基本的に無期限に保持されますが、保持するファイル数を制限する方法について説明します。
詳細
CO-Store 関連のログファイルは通常 PVS サーバーの C:\ProgramData\CO-CONV\CO-Store\logs\ 以下に保存され、規定の設定では古いログが削除されることはありません。この挙動は、設定ファイルを編集することで変更できます。
対象設定ファイル
ログ出力を設定するファイルは以下です。後述しますが、CO-Booter サーバーの設定については他と異なる部分があります。
CO-Store サーバー
プログラム | 設定ファイルのパス |
---|---|
CO-Store サーバー サービス | C:\Program Files\CO-CONV\CO-Store\Server\CO-StoreServer.exe.config |
CO-Store タスクキュー サービス | C:\Program Files\CO-CONV\CO-Store\Server\CO-StoreTaskQueue.exe.config |
CO-Store API | C:\Program Files\CO-CONV\CO-Store\Server\CO-StoreApi.exe.config |
CO-Booter サーバー サービス | C:\Program Files\CO-CONV\CO-Store\Booter\CO-BooterServer.exe.config |
CO-Store 設定ウィザード | C:\Program Files\CO-CONV\CO-Store\Server\CO-StoreConfig.exe.config |
CO-Store コンソール
プログラム | 設定ファイルのパス |
---|---|
CO-Store コンソール | C:\Program Files\CO-CONV\CO-Store\Console\CO-StoreConsole.exe.config |
設定例
CO-Store では log4net というライブラリを利用してログ出力を行っています。 基本的にログ出力設定は同じですが、CO-Booter サーバー サービスに関しては少し違う設定を行っているので、分けて解説します。
以下は、CO-Store 3.0 における設定を例とします。CO-Store 2.5 の場合も同様の手順で設定変更は可能です。
CO-Store
CO-StoreServer.exe.config を例に取ると、ログ出力の設定は以下の部分になります。
<log4net>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<!-- ログ・ファイル名の先頭部分 -->
<param name="File" value="${ProgramData}/CO-CONV/CO-Store/logs/CO-StoreServer.${COMPUTERNAME}" />
<!-- 追加書き込み -->
<param name="AppendToFile" value="true" />
<!-- 日付ごとにファイルを作成することを指定 -->
<param name="RollingStyle" value="date" />
<!-- ログ・ファイル名が固定ではないので“false”を指定 -->
<param name="StaticLogFileName" value="false" />
<!-- ファイル名の日付部分 -->
<param name="DatePattern" value='"."yyyyMMdd".log"' />
<layout type="log4net.Layout.PatternLayout">
<!-- ログの書式 -->
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<root>
<!-- ログのレベルを指定 -->
<!-- すべてのログ・レベルを出力 -->
<level value="INFO" />
<!-- どのログ出力先を使用するか -->
<appender-ref ref="RollingFileAppender" />
</root>
</log4net>
上記の設定では、<appender>
要素でログ出力ルール RollingFileAppender
を定義し、<root>
要素内で扱うログレベルと、利用するログ出力ルールを指定しています。この場合、日付ごとに 1 つのログファイルを作成し、保持するログファイル数の上限は設定されていません。
以下に、ログを 5MB ずつ分割して 100 世代まで保持し、それ以上古いファイルは削除する設定の例を示します。
<!-- 5MB ずつ分割したログファイルを 100 世代までバックアップする設定-->
<appender name="SizeRollingFileAppender" type="log4net.Appender.RollingFileAppender">
<!-- ログ・ファイル名の先頭部分 -->
<param name="File" type="log4net.Util.PatternString" value="${ProgramData}/CO-CONV/CO-Store/logs/CO-StoreServer.${COMPUTERNAME}.log" />
<!-- 追加書き込み -->
<param name="AppendToFile" value="true" />
<!-- サイズによりファイル分割を行う
※ date などにすると保持する世代数の指定はできない -->
<param name="RollingStyle" value="Size" />
<!-- 複数世代保持するのでファイル名は固定ではない -->
<param name="StaticLogFileName" value="false" />
<!-- 5MB 書き込まれたら次のログファイルに切り替える -->
<param name="MaximumFileSize" value="5MB" />
<!-- 最新のログファイル +99 で 100 世代保持する -->
<param name="MaxSizeRollBackups" value="99" />
<layout type="log4net.Layout.PatternLayout">
<!-- ログの書式 -->
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
上記の設定例は、 <appender>
要素を <log4net>
要素の子要素として追加し、<root>
要素内に <appender-ref ref="SizeRollingFileAppender" />
を追加することで利用できます。
また、既存の RollingFileAppender
によるログ出力を無効化したい場合は <root>
要素内の <appender-ref ref="RollingFileAppender" />
を削除あるいはコメントアウトすることで無効化できます。
CO-StoreApi.exe.config の既定の設定のように RollingStyle
を Composite
とすると、MaxSizeRollBackups
で日付ごとに保持するログファイル数の上限は指定できますが、総数の上限は指定できないので、保持するログファイルの総数をしたい場合は RollingStyle
の指定を date
から Size
に変更してください。
CO-Booter サーバー
CO-Booter サーバーの設定 (CO-BooterServer.exe.config) で
は処理内容ごとにログファイルを分けているので
、<root>
要素が設定ファイルにありません。対応するのは複数の <logger>
要素です。
<logger name="COBooterServer">
<level value="DEBUG"/>
<appender-ref ref="LogFileAppender"/>
</logger>
<logger name="ClientStatusLogger">
<level value="ERROR"/>
<appender-ref ref="ClientStatusErrorLogFileAppender"/>
</logger>
<logger name="AliveCheckLogger">
<level value="INFO"/>
<appender-ref ref="AliveCheckRollingFileAppender"/>
</logger>
<logger name="BooterServerDbManager">
<level value="INFO"/>
<appender-ref ref="AliveCheckRollingFileAppender"/>
</logger>
ここでは、パケットの処理に伴うログを LogFileAppender
で、定期処理を含むログを AliveCheckRollingFileAppender
で、端末の異常な挙動を検知した場合のログを ClientStatusErrorLogFileAppender
で扱うようにしています。ログ出力設定を書き換える際は、以上の点に留意してください。
補足
ログ出力設定を変更した場合にサービスの再起動等は不要です。
さらに詳細な設定を行いたい場合には、以下の log4net のマニュアルを参照してください。 https://logging.apache.org/log4net/release/manual/configuration.html