伐採

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

Sitecore Hostでのログ記録は、カスタム レイヤーを提供する代わりに、Microsoft.Extensions.Logging.AbstractionsおよびMicrosoft.Extensions.Logging パッケージでMicrosoftが提供するAPIを使用するため、シンプルです。つまり、Microsoft Logging APIを理解している場合は、Sitecoreでのログ記録の使用方法を理解できます。

デフォルトでは、Sitecore Hostアプリケーションはコンテンツをコンソールとデバッグ ロガーに記録します。独自のカスタムロギングを使用するには、Sitecore.Framework.Runtime.Abstractionsパッケージに含まれるIConfigureSitecoreLoggingインターフェースを実装します。これにより、選択したログ実装を構築および設定するためのエントリ ポイントが提供され、Sitecore Hostアプリケーションで使用できるようになります。

Serilogはデフォルトのロガー実装です。これは、ASP .Net Core 2.xおよびMicrosoft Logging APIと互換性のある、シンプルでありながら強力なログ フレームワークです。

構造化されたロギングとイベントデータの使用をサポートしており、アプリケーションのニーズに合わせて完全にカスタマイズ可能な豊富なプロパティセットを使用して、ログ情報の詳細な分析を可能にします。

Serilog Wikiには追加情報があります。

このトピックでは、次の内容について説明します。

Sitecore HostアプリケーションでのSerilogの設定

sitecorehost.xmlファイルでロギングを設定するのは、アプリケーションが実行されるとロギングが早期に開始されるためです。例えば:

<Serilog>
    <Using>
        <Console>Serilog.Sinks.Console</Console>
        <Rolling>Serilog.Sinks.RollingFile</Rolling>
        <Environment>Serilog.Enrichers.Environment</Environment>
    </Using>
<Serilog>

セリログシンク

Sitecore Hostアプリケーションは、さまざまなSerilog sinksを使用できます。シンクは、ログをさまざまな出力にパイプするSerilog固有の方法です(たとえば、コンソールへの出力やファイルへの出力など)。

アプリケーションのデフォルトのシンクは、sitecorehost.xmlファイルで設定します。

<Serilog>
    <Using>
        <Console>Serilog.Sinks.Console</Console>
        <Rolling>Serilog.Sinks.RollingFile</Rolling>
        <Environment>Serilog.Enrichers.Environment</Environment>
    </Using>
<Serilog>

ログレベルフィルター

アプリケーション内のすべてのロギングをカバーする最小ログ・レベルを指定できます。次の例では、デフォルトのログ・レベルをDebugに設定します。

<Serilog>
    <MinimumLevel>
        <Default>Debug</Default>  
    </MinimumLevel>
</Serilog>

名前空間に基づいてオーバーライド フィルターを指定することもできます。これを使用して、システムの各部分ごとに異なるログ重大度をログに記録します。

特定の名前空間のログ記録を上書きする場合 (たとえば、Microsoft名前空間のすべてを出力のみに設定する場合WARNING)、Override要素を使用します。

<Serilog>
    <MinimumLevel>
        <Default>Debug</Default>  
        <Override>  
            <Microsoft>Warning</Microsoft>  
            <System>Warning</System>  
        </Override>
    </MinimumLevel>
</Serilog>

追加のプロパティとログエンリッチャーを含める

Serilogを使用すると、さまざまなプロパティでログを充実させることができます。デフォルトのエンリッチャーはEnvironmentで、現在のマシン名を提供します。エンリッチャーは、sinksと同様の方法で含まれます。

<Serilog>
    <Enrich>
        <FromLogContext>FromLogContext</FromLogContext>
        <WithMachineName>WithMachineName</WithMachineName>  
    </Enrich>  
    <Properties>  
        <Application>SerilogSample</Application>  
    </Properties>
</Serilog>

コンソール・ロガーの形式を構成する

次に、Serilog設定でコンソール ロガーを作成する方法の例を示します。

<Serilog>
    <WriteTo>
        <ConsoleLogger>
            <Name>Console</Name>
            <Args>
                <theme>Serilog.Sinks.SystemConsole.Themes.AnsiConsoleTheme::Code, Serilog.Sinks.Console</theme>
                <outputTemplate>[{Timestamp:HH:mm:ss} {Level:u3}] {SourceContext} - {Message}{NewLine}{Exception}</outputTemplate>
            </Args>
        </ConsoleLogger>
    </WriteTo>
</Serilog>

ロガーは、各ログ行をフォーマットするときにoutputTemplateエレメントを使用します。theme要素は、コンソールで出力される色を指定します。利用可能なテーマは次のとおりです。

  • ConsoleTheme.None- スタイリングなし。

  • SystemConsoleTheme.Literate- すべてのWindows/.NETターゲットでサポートされているSystem.Consoleカラーリング モードを使用して、Serilog.Sinks.Literateをレプリケートするスタイル。これは、テーマを指定しない場合のデフォルトです。

  • SystemConsoleTheme.Grayscale- グレー、白、黒の濃淡のみを使用するテーマ。

  • AnsiConsoleTheme.Literate- LiterateテーマのANSI 16色バージョン。

  • AnsiConsoleTheme.Grayscale- GrayscaleテーマのANSI 256色バージョン。

  • AnsiConsoleTheme.Code- ANSI 256色のVisual Studio Codeにインスパイアされたテーマ。

Serilog Console Sinkに詳細情報があります。

ファイルロガーの形式を構成する

pathFormat要素はパスとファイル形式を指定し、outputTemplate要素は各ログ行の形式を指定します。

<Serilog>
    <WriteTo>
        <FileLogger>  
            <Name>RollingFile</Name>  
            <Args>  
                <pathFormat>logs\SerilogSample-{Date}.log</pathFormat>  
                <outputTemplate>[{Timestamp:o}] [{Level:u3}] [{Application}/{MachineName}] {SourceContext} - {Message}{NewLine}{Exception}</outputTemplate>  
            </Args>  
        </FileLogger>
    </WriteTo>
</Serilog>
この記事を改善するための提案がある場合は、 お知らせください!