Класс SPDiagnosticsServiceBase
Предоставляет менеджер категории сбора данных диагностики для Microsoft SharePoint Foundation.
Иерархия наследования
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
Пространство имен: Microsoft.SharePoint.Administration
Сборка: Microsoft.SharePoint (в Microsoft.SharePoint.dll)
Синтаксис
'Декларация
<SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel := True)> _
<SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel := True)> _
Public MustInherit Class SPDiagnosticsServiceBase _
Inherits SPService _
Implements IBackupRestoreConfiguration, IBackupRestore
'Применение
Dim instance As SPDiagnosticsServiceBase
[SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel = true)]
[SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel = true)]
public abstract class SPDiagnosticsServiceBase : SPService,
IBackupRestoreConfiguration, IBackupRestore
Замечания
Класс SPDiagnosticsServiceBase — абстрактный базовый класс, который стороннего разработчика могут наследовать от при записи конкретного подкласса для предоставления настраиваемых диагностики категорий и использовать методы WriteTrace и WriteEvent для выполнения ведения журнала. Для получения дополнительных сведений см Using the Trace Logging API.
Примеры
Следующий пример показывает реализация диагностики службы. Обратите внимание на то, что значения перечисления CategoryId , а также категорий, созданных с помощью метода ProvideAreas , произвольных и используются только в данном примере. Можно создавать категории в соответствии со своими собственными целями.
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()];
}
}
}
}
В следующем примере кода показано, как использовать службы диагностики для записи в журнал трассировки.
Sample code provided by: James Форт, корпорация Майкрософт.
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();
}
}
}
Потокобезопасность
Любые общедоступные элементы static (Shared в Visual Basic) этого типа являются потокобезопасными. Не гарантируется, что любые элементы экземпляров потокобезопасны.
См. также
Справочные материалы
Элементы SPDiagnosticsServiceBase
Пространство имен Microsoft.SharePoint.Administration