SharePoint トレースログの内容、保存場所、関連ログ

SharePoint開発Tips : 2013.04.22 Monday

SharePoint トレースログの概要

SharePointで何か起きたら、トレースログ(ULSトレースログ、統合ログシステム トレースログ)に事象(エラー、情報)が書き込まれます。

トレースログに出力されるログ内容は多岐に渡ります。トレースログに書き込まれる「何か」には、SharePointからデータベースへの書き込みエラーやタイマー(OWSTIMER)実行時のエラー、SharePointユーザーインターフェイスでの「操作ミス」、PowerShellの「入力ミス」などがあります。

開発者は、トレースログAPI を使ってトレースログに独自のログを書き込めます。
システム管理者(および開発者、運用担当者)は、PowerShellのGet-SPLogEventなどを使用してトレースログを参照したり、必要なログだけフィルタリングしたりできます。

開発者ダッシュボードを使えば、トレースログが表示できます。

SharePoint トレースログの場所、ファイル

トレースログは、標準ではSharePoint Hive(¥Program Files¥Common Files¥Microsoft Shared¥Web Server Extensions¥14)のLOGSフォルダに格納されます。

トレースログを格納する場所(フォルダ)は、[サーバーの全体管理]-[監視]-[診断ログの構成]で変更できます。


トレースログのファイル名は、「コンピュータ名-年月日-時分.log」という形式です。既定では 30分に1ファイル作成され、ログファイル作成時の日時がログファイル名になります。

SharePoint トレースログの出力内容

トレースログの1レコード(1行)には、事象の発生日時(Timestamp)、プロセス名(Process)、エリアとカテゴリ(Area,Category)、レベル(Level)、詳細メッセージ(Message)などがあります。

事象の発生日時(Timestamp)は、PowerShellのGet-SPLogEventを使って表示すると...時分秒だけが表示されてしま いますが ちゃんと列名(Timestamp)まで指定すると、年月日時分秒が表示されます。

プロセス名(Process)は、トレースログを出力したプロセス名で、タイマーの場合「OWSTIMER.exe」、SharePointユーザーインターフェイスの場合「w3wp.exe」、PowerShellの場合「PowerShell.exe」または「PowerShell_ise.exe」です。

エリア(Area)は、SharePoint Foundation、Web Content Managementなどです。カテゴリ(Category)は、エリアごとに異なり General、Taxonomyなどがあります。

トレースのレベルは、論理チェックに失敗した非定型の状態をあらわす Unexpected、問題をあらわす Monitorable、優先度の高いイベントを表す High、個別機能の成功/失敗メッセージ Medium、開発者のデバッグメッセージ VerboseとVerboseExがあります。

イベントのレベルは、重大なエラーですぐに対処が必要な Critical、すぐに対処は不要なエラー Error、重大なエラーにつながる可能性のある警告 Warning、管理者に提供する情報 Informationがあります。

トレースログを見る場合、まず始めに レベルで Critical、Exception、Unexpectedのログがないかをチェックしましょう。

SharePoint トレースログと関連のあるログ

トレースログで問題(レベル:Critical、Exception、Unexpected)を検出した場合、同様のログがWindowsイベントログにも登録されます。

SharePointシステムの監視をおこなう場合は、トレースログではなくイベントログで監視した方が、他のエラー等も網羅できるので便利かもしれません。

トレースログの問題が、SharePointユーザーインターフェイス(操作)によるエラーの場合、IISログを参照し、該当時刻にどのようなWebアクセスがあったかを解析する必要があります。

トレースログの問題が、DeadLockなどのSQL Serverに関するものの場合、SQL Serverログを参照したり、SQL Server管理ツールでデータベース状態などの確認が必要です。

PowerShellのログ

SharePoint管理者操作を簡易にするために PowerShellでSharePonintのサイト、リストなどを作成したり、参照したり...とScriptを作って実行すると、実行は問題ないのですが ULSシステム トレースログに以下のログが出力される場合があります。

プロセス名PowerShell.exe
エリアSharePoint Foundation
カテゴリGeneral
レベルUnexpected
メッセージDetected use of SPRequest for previously closed SPWeb object.Please close SPWeb objects when you are done with all objects obtained from them, but not before.

「SPWebオブジェクト(SharePointサイトの情報を格納しているオブジェクト)は、実行前ではなく すべての実行後にクローズしてください。」というメッセージなのですが、心当たりがありません...。Scriptで SPWebのDisposeをちゃんとおこなっていても エラーがでます。

シンプルなPowerShell Scriptコードでも、このエラーが出てしまいます。TechNetやMSDNのサンプル通りにScriptを書いているのですが(^-^;;;
このエラーにより、SharePointサイト情報を格納しているメモリ解放がうまくいかず、サーバーのメモリを無駄に消費したままになる...のですが、サーバーのメモリがある下限を超えると、ガベージコレクションが走り、不要なメモリを解放してくれるので、「動作が重くなる可能性はあるが、システムがダウンすることはない」エラーです。

このエラーが出るパターンには、SPWebのプロパティを変更しているパターン(例:サイトのロゴ、サイドリンクバー有効化)、SPWebからリストを取得しているパターン(例:TryGetListメソッド)、SPWebのSharePointグループ関連のアクセスパターン(例:SiteGroupsのAdd)などがあります。
サードパーティ製の市販製品でも、このエラーが発生してたりもします。

システムダウンは起きない、他の製品でもエラーが出ている・・・とは言っても、直せるものならば直したいですよね。
解決策としては、トレースログでメッセージから StackTraceの「場所」を手掛かりに Scriptの該当箇所を探し出し、その近辺を「Start-SPAssignment」「Stop-SPAssignment」で囲うことです。(TechNetの説明では...) Start-SPAssignmentは 新しい割り当てストアの開始、Stop-SPAssignmentは 割り当てストアの終了です。簡単にいえば、SPWebなどのオブジェクトに割り当てられるメモリの確保/破棄です。

(改善前) SharePointサイト情報を取得し、サイドリンクバーを無効化しています。

(改善後) 改善前のコードを Start-SPAssignmentとStop-SPAssignmentで囲っています。

Start-SPAssignmentとStop-SPAssignmentのオプションには、単純な割り当てを意味する 「-global」を指定しています。

大雑把にPowerShellスクリプトのメイン処理を、SPAssignmentで囲むと...残念ながら PowerShell実行途中でエラーとなってしまいます。
SPWebを取得してから、色々な処理を行っている場合、処理自体をシンプルに バラバラにして、SPAssignmentで囲う必要があります。


SharePoint Online
Office 365/
SharePoint Online
事始め
Office 365やるってよ |  Office 365市販本(1) |  Office 365市販本(2) |  MSサイトでプランを勉強 |  TechNetでプランを勉強 |  sway, cortana, delve |  E5プラン |  Office Online制限 |  SharePoint 2016 RC |  アーキテクチャ | 
SharePoint Online
Webパーツ
標準 Webパーツ |  スクリプトエディタ |  RSSビューア |  フィルタWebパーツ |  XsltListViewWebPart |  グラフ表示パーツ | 
SharePoint Online
リスト/ライブラリ
標準 リスト/ライブラリ |  アンケート(Survey) |  画像ライブラリ |  ニュースフィード |  日英サイト間でリストデータ移行 |  ライブラリ ドラッグ&ドロップ |  ライブラリ ファイル一覧出力 |  モダン ドキュメントライブラリ |  リスト外観変更 |  Explorer URL |  ディスカッション掲示板 |  注目リンク | 
SharePoint Online
検索機能
検索の対象 |  検索されたくないファイル |  注目サイト | 
SharePoint Online
Notes移行
Notes情報表示 |  Notesデータ移行 | 
SharePoint Online
カスタマイズ
IE11開発者ツール |  Osloとの戦い |  Style動的変更 |  リダイレクトページ |  IEとChrome |  ボタン名の変更 |  フロー Flow |  注目リンク カスタマイズ | 
SharePiont Online
動作仕様
制限値が気になる |  Webページ破損 |  サイトコレクション削除 |  記憶域とサーバーリソース |  プロファイル画像 |  IsDlg効かず |  プレゼンス表示 |  利用状況レポート |  データ容量管理 |  ごみ箱の日数 |  サイトメールボックス |  標準 サイト |  サイドリンクバー |  外部ユーザー共有 |  おすすめ エラー |  直打ちURL |  外観変更エラー |  サイトコレクション機能 |  ユーザープロファイル |  Access app 廃止 | 
Office 365
動作仕様
OneDrive概要 |  OneDrive設定 |  OWAエラー画面 |  新しい Office 365管理センター |  Office 365メッセージ |  OneNote同期/ファイル |  Office 365サイト |  Office 365監査ログ | 

SharePoint概要
SharePointとは? |  アーキテクチャ |  サイトテンプレート | 
リストテンプレート |  Webパーツ |  アクセス権限 |  SharePoint用語集

SharePoint構築Tips
リスト名(URL) |  ライブラリ名(URL) |  フィールド名(内部名) | 
ビュー名(ファイル名) |  リストテンプレート(ワークフロー削除) | 
大きなリストの問題 |  アイテム一覧の列幅 |  機能とWebパーツ | 
フィールドデータ型 |  禁則文字 |  隠しリスト表示 |  管理パス |  サイト内の列 |  サポート期限 |  PDFをブラウザで開く |  URLエンコード・デコード | 
日時の絶対値表示

SharePoint開発Tips
開発の概要 |  開発者ダッシュボード |  MSDN URL |  REST インターフェイス |  ページ パラメータ IsDlg |  ビジュアルアップグレード |  機能(Feature) | 
2010開発者向けの資格 |  2013開発者向けの資格 |  ページ パラメータ contents |  リソースファイル |  リスト/ライブラリGUID |  テーマ | 
トレースログ |  PowerShell文字コード |  SharePoint Framework

search this site.
SharePoint概要
SharePointとは?
アーキテクチャ
サイトテンプレート
リストテンプレート
Webパーツ
アクセス権限
SharePoint用語集


SharePoint構築Tips
リスト名(URL)
ライブラリ名(URL)
フィールド名(内部名)
ビュー名(ファイル名)
リストテンプレート
(ワークフロー削除)

大きなリストの問題
アイテム一覧の列幅
機能とWebパーツ
フィールドデータ型
禁則文字
隠しリスト表示
管理パス
サイト内の列
サポート期限
PDFをブラウザで開く
URLエンコード・デコード
日時の絶対値表示
Explorer URL

SharePoint開発Tips
開発の概要
開発者ダッシュボード
MSDN URL
RESTインターフェイス
ページパラメータ IsDlg
ビジュアルアップグレード
機能(Feature)
2010開発者向けの資格
2013開発者向けの資格
ページパラメータ contents
リソースファイル
リスト/ライブラリGUID
テーマ
トレースログ
PowerShell文字コード
SharePoint Framework

SharePoint情報サイト
SharePoint Developer Center
Support Team Blog
松崎 剛 Blog
SharePoint Developer
SharePoint Maniacs
SharePoint Technical Note
ILLUMINATE JAPAN Blog
SharePoint Factory
新卒管理者の奮闘ブログ
SharePoint Maniacs
AvePoint Japan Community
idea.toString();
SharePoint Issue
Office365/SharePoint



   風水吉凶方位 |  奇門遁甲 |  金運神社 |  金運本 |  気場 |  水族館 |  イルカ |  ペンギン |  クラゲ |  仏像 |  論語 | 
   般若心経 |  日本庭園 |  二十四節気 |  菜根譚 |  城郭
   情報共有(SharePoint) |  OneNote活用 |  サーバー監視 |  イベントログ |  IT資産管理 |  技術TIPS