Я пытаюсь запустить журналирование, но ничего не происходит, весь код работает, никаких исключений, но в базе данных ничего не появляется.
Вот что я сделал: я создал БД со сценарием, предоставленным в EntLib6, в БД, которая находится под DB_BELVAL строка подключения, я поставил этот тест С# код в переносимом классе, который будет обрабатывать журналирование:
Код: Выделить всё
public static void LogToDatabase()
{
try
{
// Bootstrapping logging
DatabaseFactory.SetDatabaseProviderFactory(new DatabaseProviderFactory());
IConfigurationSource configurationSource = ConfigurationSourceFactory.Create();
LogWriterFactory logWriterFactory = new LogWriterFactory(configurationSource);
Logger.SetLogWriter(logWriterFactory.Create());
if (Logger.IsLoggingEnabled())
{
LogEntry log = GetLogEntry();
log.Categories.Add("General"); // name of Category in EntLib Config editor
log.Priority = 5;
log.Severity = System.Diagnostics.TraceEventType.Information;
log.Message = "Hello dude, from AMLogger";
Logger.Write(log);
}
}
catch (Exception ex)
{
}
}
private static LogEntry GetLogEntry()
{
LogEntry log = new LogEntry();
log.TimeStamp = DateTime.Now;
log.Title = "TANOLIS";
log.Priority = 5; // default priority
log.Severity = System.Diagnostics.TraceEventType.Verbose; // default severity
log.MachineName = "MachineName"; //HttpContext.Current.Server.MachineName;
log.ProcessId = System.Diagnostics.Process.GetCurrentProcess().Id.ToString();
return log;
}
Я настроил файл конфигурации модульный тест:

или XML:
Код: Выделить всё
Спасибо за помощьEDIT 1: logWriterFactory выглядит так, как будто он загрузил XML:

РЕДАКТИРОВАНИЕ 2: я отредактировал хранимую процедуру [dbo] .[WriteLog], чтобы создать своего рода флаг (один INSERT INTO [dbo].[TestLog]), чтобы знать, вызывается ли хранимая процедура, и похоже, что приложение не вызывает сохраненную процедура:
Код: Выделить всё
ALTER PROCEDURE [dbo].[WriteLog]
(
@EventID int,
@Priority int,
@Severity nvarchar(32),
@Title nvarchar(256),
@Timestamp datetime,
@MachineName nvarchar(32),
@AppDomainName nvarchar(512),
@ProcessID nvarchar(256),
@ProcessName nvarchar(512),
@ThreadName nvarchar(512),
@Win32ThreadId nvarchar(128),
@Message nvarchar(1500),
@FormattedMessage ntext,
@LogId int OUTPUT
)
AS
INSERT INTO [dbo].[TestLog] ([text]) VALUES ('StoredProc1')
INSERT INTO [dbo].[Log] (EventID, Priority, Severity,
Title, [Timestamp],
MachineName, AppDomainName,
ProcessID, ProcessName,
ThreadName, Win32ThreadId,
Message, FormattedMessage)
VALUES (@EventID, @Priority, @Severity,
@Title, @Timestamp,
@MachineName, @AppDomainName,
@ProcessID, @ProcessName,
@ThreadName, @Win32ThreadId,
@Message, @FormattedMessage)
SET @LogID = @@IDENTITY
RETURN @LogID
Подробнее здесь: https://stackoverflow.com/questions/311 ... log-on-sql