Ведение журнала БД с использованием интерфейса Fluent - PullRequest
0 голосов
/ 31 октября 2011

Я использую Enterprise library 5.0.Используя свободный интерфейс, я смог настроить Trace Listners для ведения журнала на основе файлов и событий.Есть ли способ настроить его для базы данных.Моя идея не в том, чтобы использовать какой-либо внешний файл конфигурации, специфичный для конфигурации ведения журнала.

Я использовал следующее, я могу войти в flatFile, Просмотр событий.Когда я пытаюсь войти, используя DBListner, я не получаю никакого сообщения об ошибке, но сообщение также не регистрируется.Кто-нибудь может пролить свет?

.SendTo.RollingFile("Flat File Trace Listener")
        .ToFile("Trace.log")
        .WithHeader("----------------------")
        .FormatWith(new FormatterBuilder()
        .TextFormatterNamed("Text Formatter")
        .UsingTemplate("Timestamp: {timestamp}{newline}Message: {message}{newline}Category: {category}{newline}Priority: {priority}{newline}EventId: {eventid}{newline}Severity: {severity}{newline}Title:{title}{newline}Machine: {machine}{newline}Application Domain: {appDomain}{newline}Process Id: {processId}{newline}Process Name: {processName}{newline}Win32 Thread Id: {win32ThreadId}{newline}Thread Name: {threadName}{newline}Extended Properties: {dictionary({key} - {value}{newline})}"))

        .SendTo.EventLog("Formatted EventLog TraceListener")
        .FormatWithSharedFormatter("Text Formatter")
        .ToLog("Application")
        .LogToCategoryNamed("General").WithOptions.SetAsDefaultCategory()

        .SendTo.Database("Formatted Database TraceListener")
        .UseDatabase("MyDatabase")            
        .FormatWith(new FormatterBuilder().TextFormatterNamed("TextFormat"))
        .WithWriteLogStoredProcedure("WriteLog")
        .WithAddCategoryStoredProcedure ("AddCategory")
        .LogToCategoryNamed("DBLogger").WithOptions.SetAsDefaultCategory();

        builder.ConfigureData()
        .ForDatabaseNamed("MyDatabase")
        .ThatIs.ASqlDatabase()
        .WithConnectionString("Data Source=.\SQLExpress;Initial Catalog=Logging;Integrated ecurity=True;")
        .AsDefault();

1 Ответ

0 голосов
/ 19 января 2012

Метод LogToCategoryNamed должен стоять первым.Примерно так:

.LogToCategoryNamed("DBLogger")
    .SendTo.Database("Formatted Database TraceListener")
        .UseDatabase("MyDatabase")
        .FormatWith(new FormatterBuilder().TextFormatterNamed("Text Formatter"));

Документация по использованию свободного API для регистрации может быть найдена здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...