Я новичок в SLAB. EventSource записывает события в окно консоли, но не на сервер SQL. Я использую VS2019 на своем локальном p c. Я создал базу данных журналов с помощью sqlcmd в (localdb) \ ProjectsV13. Я вижу, что состояние экземпляра выполняется с использованием (sqllocaldb info projectsV13).
Просмотр базы данных журналов в SQL Server Object Explorer
(localdb) \ ProjectsV13 instance info
Debug показывает, что метод WriteEvent (1, req) выполняется, но в базу данных ничего не регистрируется.
См. EventSource и код слушателя ниже.
Код источника события:
namespace SLABSqlEventSinkEx
{
using System.Diagnostics.Tracing;
[EventSource(Name = "SqlApplicationEventSource")]
public sealed class ApplicationEventSource : EventSource
{
public static ApplicationEventSource Log = new ApplicationEventSource();
#region Inner Types
public class Keywords
{
public const EventKeywords Database = (EventKeywords)1;
//public const EventKeywords Database = (EventKeywords)1;
}
public class Tasks
{
public const EventTask PasswordHashing = (EventTask)0x1;
}
#endregion Inner Types
#region Logging Methods
[Event(
1,
Keywords = Keywords.Database,
Message = "Start processing request Database - {0}",
Task = Tasks.PasswordHashing,
Opcode = EventOpcode.Start,
Level = EventLevel.Informational)]
public void RequestPasswordHashing(int req)
{
if (this.IsEnabled())
{
WriteEvent(1, req);
}
}
#endregion Logging Methods
}
}
Слушатель:
namespace SLABSqlEventSinkEx
{
class Program
{
private static void Main(string[] args)
{
//create listener, sink and subscribe to event source
//var listener1 = ConsoleLog.CreateListener();
//listener1.EnableEvents(ApplicationEventSource.Log, EventLevel.Informational, Keywords.All);
var listener2 = new ObservableEventListener();
listener2.LogToSqlDatabase(@"(localdb)\ProjectsV13",
@"Data Source=(localdb)\ProjectsV13;Initial Catalog=Logging;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");
listener2.EnableEvents(ApplicationEventSource.Log, EventLevel.Informational, Keywords.All);
//var sqlDatabaseListener =
// SqlDatabaseLog.CreateListener(
// @"(localdb)\ProjectsV13",
// @"Data Source=(localdb)\ProjectsV13;Initial Catalog=Logging;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");
//sqlDatabaseListener.EnableEvents(ApplicationEventSource.Log, EventLevel.Informational, Keywords.All);
ApplicationEventSource.Log.RequestPasswordHashing(10010);
Console.ReadLine();
}
}
}