SPDiagnosticsServiceBase class

Fornece um gerente de categoria de log de diagnóstico para Microsoft SharePoint Foundation.

Inheritance hierarchy

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

'Declaração
<SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel := True)> _
<SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel := True)> _
Public MustInherit Class SPDiagnosticsServiceBase _
    Inherits SPService _
    Implements IBackupRestoreConfiguration, IBackupRestore
'Uso
Dim instance As SPDiagnosticsServiceBase
[SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel = true)]
[SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel = true)]
public abstract class SPDiagnosticsServiceBase : SPService, 
    IBackupRestoreConfiguration, IBackupRestore

Comentários

A classe SPDiagnosticsServiceBase é uma classe base abstrata que um desenvolvedor de terceiros pode herdar ao escrever uma subclasse concreta para fornecer categorias personalizadas de diagnóstico e usar os métodos WriteTrace e WriteEvent para executar o log. Para obter mais informações, consulte Using the Trace Logging API.

Examples

O exemplo a seguir mostra uma implementação de um serviço de diagnóstico. Observe que os valores de enumeração de CategoryId , bem como as categorias criadas pelo método ProvideAreas são arbitrários e usados apenas para fins de ilustração. Você pode criar categorias para atender às suas próprias finalidades.

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()];
            }
        }
    }
}

O exemplo de código a seguir mostra como você pode usar o serviço de diagnóstico para gravar uma entrada no log de rastreamento.

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();
        }
    }
}

Thread safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Ver também

Referência

SPDiagnosticsServiceBase members

Microsoft.SharePoint.Administration namespace

Outros recursos

Trace Logs

Using the Trace Logging API