完全な通常モードで、すべてのログ間で形式の整合性が必要です。 ただし、一部のログに複数の形式のコンテンツが含まれる場合があります。 この場合、ログを処理するためにスキーマオンライトまたはスキーマオンリードモードを使用できます。

たとえば、Java ログは、正しい情報とエラー情報(異常なスタックに関する情報など)の両方を含むプログラムログです。中には:
  • 複数行の警告ログ
  • シンプルテキスト INFO ログ
  • キー値 DEBUG ログ
[2018-10-01T10:30:31,000] [WARNING] java.lang.Exception: another exception happened
    at TestPrintStackTrace.f(TestPrintStackTrace.java:3)
    at TestPrintStackTrace.g(TestPrintStackTrace.java:7)
    at TestPrintStackTrace.main(TestPrintStackTrace.java:16)
[2018-10-01T10:30:32,000] [INFO] info something
[2018-10-01T10:30:33,000] [DEBUG] key:value key2:value2
このようなログを処理するには、以下のモードを使用できます。
  • スキーマオンライト:このモードでは、Logtail は通常設定が異なる複数の Logtail Config をログに適用して正しいフィールドを抽出できるようにします。
    Logtail はファイルに複数の Logtail Config を適用できません。 そのため、ファイルが格納されているディレクトリに複数のシンボリックリンクを設定する必要があります。 その後、各 Logtail Config はシンボリックリンク上で機能するため、複数の Logtail Config を集約して同時にファイルを収集できます。
  • 読み取り専用スキーマ:このモードでは、マルチフォーマットログの一般的な正規表現を使用する必要があります。

    たとえば、複数行のログを収集する場合は、時間とログレベルを行頭の正規表現として使用し、残りの部分を message フィールドとして使用できます。 message フィールドを分析する場合は、そのインデックスを設定し、必要なコンテンツを抽出してから、Log Service が提供するクエリおよび分析機能(正規表現抽出など)に基づいてコンテンツを分析できます。

    このモードは、小規模(たとえば数千万)のログで分析する必要がある場合にのみ推奨されます。