# Diarkis サーバーログレベルの変更方法

## 概要 <a href="#hajimeni" id="hajimeni"></a>

現在のログレベルを変えて出力する情報を変更する方法を説明します。

Diarkis のログレベルには以下の 8 つがあります。

<table><thead><tr><th width="153.392333984375">ログレベル名</th><th></th></tr></thead><tbody><tr><td>verbose</td><td>最も低いログレベルで、内部で何が起きているかを確認するためのものです。本番環境では利用しないようにして下さい。</td></tr><tr><td>network</td><td>sys レベルよりも低いログレベルで、UDP/TCP ネットワーク関連のログを出力します。</td></tr><tr><td>sys</td><td>3番目に低いログレベルで、より詳細な情報を記録します。</td></tr><tr><td>debug</td><td>デバッグ目的の情報を記録し、通常はアプリケーションレベルのコードで使用されます。</td></tr><tr><td>info</td><td>アプリケーションの開始や終了、その他重要な情報を記録します。</td></tr><tr><td>notice</td><td>アプリケーションにとって重要ではあるが、致命的ではない情報を記録する際に使用します。</td></tr><tr><td>warn</td><td>エラーではないものの、記録して後で確認するべき警告情報を記録します。</td></tr><tr><td>error</td><td>ユーザーまたはアプリケーションによって引き起こされる可能性のあるエラーを記録します。</td></tr><tr><td>fatal</td><td>回復不能な問題を記録します。</td></tr></tbody></table>

サーバー起動時のコンフィグファイルでログレベルの指定が可能です。出力されるログは指定されたログレベル以上のもの（ info を指定した場合は、それ以降の info/notice/warn/error/fatal レベル）が出力されます。

コピー

```
verbose < network < sys < debug < info < notice < warn < error < fatal
```

また、バグ調査のためにパケット情報を出力するためには network レベルを指定する必要があります。

ただし、verbose/ network などログレベルを下げることでログ出力にかかるコスト（CPU 負荷や保存にかかる料金）も高くなるので本番環境で利用する際はご留意ください。

## 手順 <a href="#shou-shun" id="shou-shun"></a>

コンポ各コンポーネントのコンフィグディレクトリに 💾 log.json が格納されております。その中の `level` プロパティを変更することでログレベルの変更が可能です。値には上記に記載のログレベル名を指定します。

```json
  "level": "info"
```

[diarkis-server-template](https://github.com/Diarkis/diarkis-server-template) を利用している場合、実行する環境によって以下の通り編集する箇所が異なります。

```bash
# ローカル環境の TCP/UDP/HTTP のログレベル変更は以下ファイルを編集します
{path to project}/configs/shared/log.json

# Kubernetes 環境の場合は利用しているクラウドサービスによって異なります
## AWS の dev0 ネームスペース
{path to project}/k8s/aws/overlays/dev0/shared/conf/log.json
## Azure の dev0 ネームスペース
{path to project}/k8s/azure/overlays/dev0/shared/conf/log.json
## GCP の dev0 ネームスペース
{path to project}/k8s/gcp/overlays/dev0/shared/conf/log.json
## Linode の dev0 ネームスペース
{path to project}/k8s/linode/overlays/dev0/shared/conf/log.json
```

### 補足 <a href="#bu-zu" id="bu-zu"></a>

[diarkis-server-template](https://github.com/Diarkis/diarkis-server-template) のそのままの構成では、各コンポーネントごとにログレベルを変更することが出来ません。

各コンポーネントごとに変更したい場合は、以下ドキュメントを参照してください。

* <https://docs.diarkis.io/docs/server/v1.0.0/diarkis/diarkisexec/index.html>

また、logger ごとにログレベルを変更することもできます。詳しくは以下ドキュメントを参照してください。

* <https://docs.diarkis.io/docs/server/v1.0.0/diarkis/log/index.html>
