SPDiagnosticsServiceBase-Klasse
Stellt einen Kategorie-Manager für die Diagnoseprotokollierung für Microsoft SharePoint Foundationbereit.
Vererbungshierarchie
System.Object
Microsoft.SharePoint.Administration.SPAutoSerializingObject
Microsoft.SharePoint.Administration.SPPersistedObject
Microsoft.SharePoint.Administration.SPPersistedUpgradableObject
Microsoft.SharePoint.Administration.SPService
Microsoft.SharePoint.Administration.SPDiagnosticsServiceBase
Microsoft.SharePoint.Administration.SPDiagnosticsService
Namespace: Microsoft.SharePoint.Administration
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
'Declaration
<SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel := True)> _
<SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel := True)> _
Public MustInherit Class SPDiagnosticsServiceBase _
Inherits SPService _
Implements IBackupRestoreConfiguration, IBackupRestore
'Usage
Dim instance As SPDiagnosticsServiceBase
[SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel = true)]
[SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel = true)]
public abstract class SPDiagnosticsServiceBase : SPService,
IBackupRestoreConfiguration, IBackupRestore
Hinweise
Die SPDiagnosticsServiceBase -Klasse ist, dass eine abstrakte Basisklasse, die dritte Developer Vererben kann beim Schreiben einer konkreten Unterklasse bereitstellen benutzerdefinierte diagnostische Kategorien und die WriteTrace und WriteEvent -Methoden verwenden, um die Protokollierung ausführen. Weitere Informationen finden Sie unter Using the Trace Logging API.
Beispiele
Das folgende Beispiel zeigt eine Implementierung eines Diagnose-Diensts. Beachten Sie, dass die Werte der CategoryId -Aufzählung als auch die Kategorien, die von der ProvideAreas -Methode erstellte beliebige und nur zu Darstellungszwecken verwendet werden. Sie können Kategorien entsprechend eigene Zwecke erstellen.
using System;
using System.Collections.Generic;
using Microsoft.SharePoint.Administration;
namespace Contoso.Diagnostics
{
public enum CategoryId
{
None = 0,
Deployment = 100,
Provisioning = 200,
CustomAction = 300,
Rendering = 400,
WebPart = 500
}
[System.Runtime.InteropServices.GuidAttribute("DBEEB5AB-C5A7-46B5-A2BB-5581F960C333")]
class DiagnosticsService:SPDiagnosticsServiceBase
{
private static string DiagnosticsAreaName = "Contoso";
public DiagnosticsService()
{
}
public DiagnosticsService(string name, SPFarm farm)
:base(name, farm)
{
}
protected override IEnumerable<SPDiagnosticsArea> ProvideAreas()
{
List<SPDiagnosticsCategory> categories = new List<SPDiagnosticsCategory>();
foreach (string catName in Enum.GetNames(typeof(CategoryId)))
{
uint catId = (uint)(int)Enum.Parse(typeof(CategoryId), catName);
categories.Add(new SPDiagnosticsCategory(catName, TraceSeverity.Verbose, EventSeverity.Error, 0, catId));
}
yield return new SPDiagnosticsArea(DiagnosticsAreaName, categories);
}
public static DiagnosticsService Local
{
get
{
return SPDiagnosticsServiceBase.GetLocal<DiagnosticsService>();
}
}
public SPDiagnosticsCategory this[CategoryId id]
{
get
{
return Areas[DiagnosticsAreaName].Categories[id.ToString()];
}
}
}
}
Das folgende Codebeispiel veranschaulicht die Verwendung des Diagnosediensts einen Eintrag in das Ablaufprotokoll geschrieben.
Sample code provided by: James Fort, Microsoft Corporation.
using System;
using Microsoft.SharePoint.Administration;
namespace Contoso.Diagnostics
{
class Program
{
static void Main(string[] args)
{
DiagnosticsService myULS = new DiagnosticsService ("SP Provisioning", SPContext.Current.Site.WebApplication.Farm);
if (myULS != null)
{
SPDiagnosticsCategory cat = new SPDiagnosticsCategory ("SP Provisioning", TraceSeverity.High, TraceSeverity.Verbose);
cat = myULS[CategoryId.Provisioning];
string format = "Tracing test of {0} service";
myULS.WriteTrace(1, cat, TraceSeverity.Verbose, format, myULS.TypeName);
}
Console.ReadLine();
}
}
}
Threadsicherheit
Alle öffentlichen static (Shared in Visual Basic) Member dieses Typs sind threadsicher. Die Threadsicherheit von Instanzmembern ist nicht gewährleistet.
Siehe auch
Referenz
SPDiagnosticsServiceBase-Member
Microsoft.SharePoint.Administration-Namespace