---
title: "検索およびインデックスログファイル"
slug: "the-search-and-indexing-log-files"
abstract: "インデックス操作や検索クエリに関する情報を示すログファイルです。"
---
# 検索およびインデックスログファイル

Sitecoreは検索およびインデックス操作の追跡にログファイルを使用します。クロールログはインデックス操作に関する情報を示し、検索ログは検索クエリに関する情報を示します。

## 這う丸太

クロールログにはインデックス作成プロセスに関する情報が含まれています。クロールログはApp\_Config/Sitecore.configファイルの<log4net />セクションで設定します。デフォルトのログレベルはINFOです:

<logger name="Sitecore.Diagnostics.Crawling" additivity="false">
 <level value="INFO" />
 <appender-ref ref="CrawlingLogFileAppender" />
</logger>

同じセクションでこのログのappenderを定義しています。デフォルトでは、data/logsフォルダ内の.txtファイルに書き込みます:

<appender name="CrawlingLogFileAppender" type=
 "log4net.Appender.SitecoreLogFileAppender, Sitecore.Logging">
 <file value="$(dataFolder)/logs/Crawling.log.{date}.txt" />
 <appendToFile value="true" />
 <layout type="log4net.Layout.PatternLayout">
 <conversionPattern value="%4t %d{ABSOLUTE} %-5p %m%n" />
 </layout>
</appender>

実装は[log4net](http://logging.apache.org/log4net/)を使用しています。log4netのドキュメントには、appenderをWindowsイベントログ、データベース、その他の場所に書き込む方法を変更できる方法が説明されています。

これはログエントリーのクロール例です:

INFO Index=sitecore\_core\_index Initializing IntervalAsynchronousUpdateStrategy
 with interval '\`00:01\`:00'.
INFO Index=sitecore\_core\_index Initializing LuceneDatabaseCrawler.
 DB:core / Root:/sitecore
INFO Index=sitecore\_master\_index Initializing SynchronousStrategy.
INFO Index=sitecore\_master\_index Initializing LuceneDatabaseCrawler.
 DB:master / Root:/sitecore
INFO Index=sitecore\_web\_index Initializing OnPublishEndAsynchronousStrategy.
INFO Index=sitecore\_web\_index Initializing LuceneDatabaseCrawler.
 DB:web / Root:/sitecore
INFO Index=custom\_master Initializing IntervalAsynchronousUpdateStrategy
 with interval '\`00:00\`:05'.
INFO Index=custom\_master Initializing LuceneDatabaseCrawler. DB:master /
 Root:{D70CBEED-6DCF-483F-978F-6FC3C8049512}
INFO Index=custom\_web Initializing OnPublishEndAsynchronousStrategy.
INFO Index=custom\_web Initializing LuceneDatabaseCrawler.
 DB:web / Root:{D70CBEED-6DCF-483F-978F-6FC3C8049512}
INFO Index=custom\_web Creating primary and secondary directories
INFO Index=custom\_web Resolving directories from index property
 store for index 'custom\_web'
INFO Index=custom\_master IntervalAsynchronousUpdateStrategy executing.

ログはインデックスの設定や初期化に関する情報から始まります。その後、インデックス更新戦略を適用するか、完全な再構築がトリガーされる際にクロールログにエントリーが書き込まれます。

例のログレベルがINFOであるため、ログファイルにはエントリ数が限られています。

例えばトラブルシューティングのために、より詳細なログを作成する場合は、ログレベルをDEBUGに変更できます:

<logger name="Sitecore.Diagnostics.Crawling" additivity="false">
 <level value="DEBUG" />
 <appender-ref ref="CrawlingLogFileAppender" />
</logger>

この構成と詳細なロガーを有効にすることで、Sitecoreは非常に詳細なアイテムレベルのインデックスログを生成します。

## 詳細ログ記録

標準ログに加えて詳細ログ(verbose logging)を有効にすることもできます。詳細ログを有効にすると、インデックスの詳細をより詳細に確認できます。

詳細ログは次のような状況で使います:

-   索引は更新されません。
-   一部の項目はインデックス化されていません。
-   インデックスのために完全な再構築がトリガーされ、その理由を理解する必要があります。
-   特定のサーバーでのインデックス活動を探りたいのです。

マルチサーバー環境で全サーバー間でインデックスがどのように更新されているかをテストしたいのです

VerboseLoggerはContentSearch.VerboseLoggingがtrueされたときにインスタンス化されます:

デフォルトはfalseで、Sitecoreが提供する設定にはその設定が存在しません。 Sitecore.ContentSearch.VerboseLogging.config.exampleファイルには詳細ログの有効化方法を示す例があります。

> !注VerboseLoggerコンポーネントは特別な状況でのみ有効にし、本番環境で長時間実行してはいけません。ログファイルは非常に速く成長するため、パフォーマンスを低下させる可能性があります。

トラブルシューティングには詳細ログを使用します。例えば、特定の項目がインデックス化されていない場合、VerboseLoggerはより多くの文脈を与え、問題解決の手助けをしてくれます。

VerboseLoggerは多数のインデックスイベントに関する情報を記述しています:

-   indexing:excludedfromindex
-   indexing:start
-   indexing:end
-   indexing:addingrecursive
-   indexing:addedrecursive
-   indexing:adding
-   indexing:added
-   indexing:refreshstart
-   indexing:refreshend
-   indexing:deleteitem
-   indexing:deletegroup
-   indexing:updatingitem
-   indexing:updateditem
-   indexing:updatedependents
-   indexing:refreshstart
-   indexing:refreshend
-   indexing:propertyset
-   indexing:propertyget
-   indexing:propertyadd

## Search log(検索ログ)

検索ログには、Sitecoreが実行する検索クエリに関する情報が含まれています。

web.configファイルの<log4net />セクションで検索ログを設定しました:

<logger name="Sitecore.Diagnostics.Search" additivity="false">
 <level value="INFO" />
 <appender-ref ref="SearchLogFileAppender" />
 </logger>

このログのappenderは同じセクションで定義しています。デフォルトでは、data/logsフォルダ内の.txtファイルに書き込みます。

<appender name="SearchLogFileAppender"
 type="log4net.Appender.SitecoreLogFileAppender, Sitecore.Logging">
 <file value="$(dataFolder)/logs/Search.log.{date}.txt" />
 <appendToFile value="true" />
 <layout type="log4net.Layout.PatternLayout">
 <conversionPattern value="%4t %d{ABSOLUTE} %-5p %m%n" />
 </layout>
</appender>

実装は[log4net](http://logging.apache.org/log4net/)に基づいています。log4netのドキュメントでは、Windowsイベントログ、データベース、その他の場所にappenderを変更する方法が説明されています。

以下は検索ログのエントリーの一例です:

3212 \`19:31\`:56 INFO ExecuteQueryAgainstLucene :
 +\_datasource:sitecore +(+(+\_path:11111111111111111111111111111111 +\_latestversion:1)
 +mileagehwy:1 TO 4mileagecity) - Filter : 3212 \`19:31\`:56
 INFO Results from web database :8818

コンテンツ検索のフルレベルデバッグを有効にするには、the Sitecore.ContentSearch.configファイルでContentSearch.EnableSearchDebug = trueを設定し、検索ロガーのログレベルをDEBUGに変更できます:

<logger name="Sitecore.Diagnostics.Search" additivity="false">
 <level value="DEBUG" />
 <appender-ref ref="SearchLogFileAppender" />
</logger>

検索の項目は以下の用途に役立ちます:

-   LINQコードが検索プロバイダーに渡されるネイティブ検索クエリにどのように変換されるかを理解したい開発者。
-   特定のサーバー上でどの検索クエリが実行されているかを理解したい管理者。例えば、クエリをWarmupパイプラインに入力するなどの追加最適化にこの情報を活用できます。