Серилог; Хранение журналов отдельно. Две разные библиотеки .net framework. Хотите, чтобы каждая dll была в собственном фC#

Место общения программистов C#
Ответить
Anonymous
 Серилог; Хранение журналов отдельно. Две разные библиотеки .net framework. Хотите, чтобы каждая dll была в собственном ф

Сообщение Anonymous »

Я создал две разные COM-библиотеки, каждая из которых имеет собственный вывод Serilog в файл. Автономно они работают нормально. Эти библиотеки DLL выполняют отдельные задачи и не связаны и не зависят друг от друга.
В DLL A я создаю файл журнала A_datetimestamp.log.
В DLL Б. Я создаю файл журнала B_datetimestamp.log.
Я использую эти библиотеки DLL в решениях VBA для своих клиентов. Недавно мне пришлось использовать оба для одного и того же клиента.
Когда я создаю экземпляр DLL A, мой журнал начинается как обычно.
Когда я создаю экземпляр DLL B, мой журнал начинается как обычно, но после этого все журналы, выполненные DLL A, попадают в файл для DLL B. Кроме того, все журналы для DLL B находятся в том же файле журнала.
Я действительно хочу сохранить журналы всегда разделяются. Есть ли что-то, что мне следует сделать, чтобы гарантировать, что вывод для DLL A — это журнал A, а вывод для DLL B — журнал B?
В моих «модулях» у меня есть метод Initialize, который вызывает следующее чтобы начать журнал.
private static void StartLogger(string logFQN, string logLevel = "Verbose", bool isStationLog = true)
{
var levelSwitch = new LoggingLevelSwitch();
switch (logLevel.Substring(0, 1).ToUpper())
{
case "V":
levelSwitch.MinimumLevel = LogEventLevel.Verbose;
break;
case "D":
levelSwitch.MinimumLevel = LogEventLevel.Debug;
break;
case "I":
levelSwitch.MinimumLevel = LogEventLevel.Information;
break;
case "W":
levelSwitch.MinimumLevel = LogEventLevel.Warning;
break;
case "E":
levelSwitch.MinimumLevel = LogEventLevel.Error;
break;
case "F":
levelSwitch.MinimumLevel = LogEventLevel.Fatal;
break;
}
if (!isStationLog) //Deal with Global log by controlling filesize
{
Log.Logger = new LoggerConfiguration()
.Enrich.WithEnvironmentUserName()
.MinimumLevel.ControlledBy(levelSwitch)
.WriteTo.File(logFQN,
shared: true,
fileSizeLimitBytes: 524288000, //5Meg
outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff}\t{EnvironmentUserName}\t[{Level:u4}]\t{Message:lj}{NewLine}{Exception}")
.CreateLogger();
}
else
{
Log.Logger = new LoggerConfiguration()
.Enrich.WithEnvironmentUserName()
.MinimumLevel.ControlledBy(levelSwitch)
.WriteTo.File(logFQN,
rollingInterval: RollingInterval.Day,
outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss.fff}\t{EnvironmentUserName}\t[{Level:u4}]\t{Message:lj}{NewLine}{Exception}")
.CreateLogger();
}
}


Подробнее здесь: https://stackoverflow.com/questions/784 ... t-each-dll
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»