Я создал две разные 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
Серилог; Хранение журналов отдельно. Две разные библиотеки .net framework. Хотите, чтобы каждая dll была в собственном ф ⇐ C#
Место общения программистов C#
1715704653
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();
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78473325/serilog-keeping-logs-seperate-two-different-net-framework-dlls-want-each-dll[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия