> For AI agents: the complete documentation index is available at /resource/ucidm/docs/on-premise/1.8.0/llms.txt, the full documentation bundle is available at /resource/ucidm/docs/on-premise/1.8.0/llms-full.txt.

# ログ管理 \{#log}

各コンテナのログをログファイルに出力する際の設定変更手順を示します。
各種デフォルトファイルは弊社RPMパッケージを使ってインストールする際にすべてインストールされます。

[Dockerのログ設定に関するドキュメント](https://docs.docker.com/engine/logging/) もあわせてご確認ください。

## デフォルト設定 \{#default-config}

ログ管理に関するデフォルト設定は以下になります。

|    項目   |                値               |
| :-----: | :----------------------------: |
|  ログ保存先  | `/var/log/osstech/ucidm/*.log` |
| 過去ログ保存先 |  `/var/log/osstech/ucidm/old`  |
|  ログ保存間隔 |      logrotateのデフォルト設定を利用      |
|  ログ保存数  |      logrotateのデフォルト設定を利用      |

ログはコンテナごとに保存され、 `ucidm-<コンテナ名>.log` というファイル名で出力されます。
例えば `server-api` というコンテナのログは `ucidm-server-api.log` というファイルに出力されます。

## カスタム設定 \{#custom-config}

ログ出力に関する設定は以下のファイルに記載されています。

- `/opt/osstech/etc/rsyslog.d/ucidm.conf`

```
template(name="UCIDMDynaFile" type="list") {
  constant(value="/var/log/osstech/ucidm/")
  property(name="syslogtag"
    regex.type="ERE"
    regex.match="0"
    regex.submatch="1"
    regex.expression="(.+)\\[[0-9]+\\]:"
    regex.nomatchmode="ZERO"
    securepath="replace"
  )
  constant(value=".log")
}
if ($syslogtag startswith 'ucidm-') then {
  action(type="omfile" DynaFile="UCIDMDynaFile")
  stop
}
```

これは `/etc/rsyslog.d/osstech.conf` 内でロードされており、rsyslogd設定ファイルとなっております。
ログ出力設定を変更する場合は本ファイル、もしくは `/etc/rsyslog.conf` を編集してください。

ログ保存に関する設定は以下のファイルに記載されています。

- `/opt/osstech/etc/logrotate.d/ucidm`

```
compresscmd zstd
uncompresscmd unzstd

/var/log/osstech/ucidm/*.log
{
    olddir old
    notifempty
    missingok
    sharedscripts
    postrotate
    /usr/bin/systemctl -s HUP kill rsyslog.service >/dev/null 2>&1 || true
    endscript
}
```

これは `/etc/logrotate.d/osstech` 内でロードされており、logrotate設定ファイルとなっております。
ログ保存設定を変更する場合は本ファイル、もしくは `/etc/logrotate.conf` を編集してください。

## 設定例 \{#custom-example}

いくつかのパラメータの設定変更手順を示します。

### ログ保存間隔変更手順 \{#change-log-rotation-interval}

ログ保存間隔は `/etc/logrotate.conf` で定義されたデフォルト設定をそのまま利用します。
システム全体のデフォルト設定を変更する場合は `/etc/logrotate.conf` を編集してください。
UCIDMのログ保存間隔のみ変更したい場合は `/opt/osstech/etc/logrotate.d/ucidm` を編集してください。

例えばログ保存間隔を1日に1回にする場合は、`daily` を設定に追加してください。

```
compresscmd zstd
uncompresscmd unzstd

/var/log/osstech/ucidm/*.log
{
    daily
    olddir old
    notifempty
    missingok
    sharedscripts
    postrotate
    /usr/bin/systemctl -s HUP kill rsyslog.service >/dev/null 2>&1 || true
    endscript
}
```

他には次のパラメータが設定可能です。

- `weekly` 1週間に1度
- `monthly` 1ヶ月に1度

より詳細な設定項目はlogrotateのドキュメントを参照してください。

### ログ保存数変更手順 \{#change-log-rotation-count}

ログ保存数は `/etc/logrotate.conf` で定義されたデフォルト設定をそのまま利用します。
システム全体のデフォルト設定を変更する場合は `/etc/logrotate.conf` を編集してください。
UCIDMのログ保存数のみ変更したい場合は `/opt/osstech/etc/logrotate.d/ucidm` を編集してください。

例えばログ保存数を30世代にする場合は、`rotate 30` を設定に追加してください。

```
compresscmd zstd
uncompresscmd unzstd

/var/log/osstech/ucidm/*.log
{
    rotate 30
    olddir old
    notifempty
    missingok
    sharedscripts
    postrotate
    /usr/bin/systemctl -s HUP kill rsyslog.service >/dev/null 2>&1 || true
    endscript
}
```

より詳細な設定項目はlogrotateのドキュメントを参照してください。
