У меня есть продавец, который сказал мне, что он поддерживает файл App.config в Serilog, чтобы я мог изменить минимальный уровень журналов, поскольку их (бета) продукт заполняет файловую систему и приводит к ее сбоям.
Я не думаю, что они реализовали это правильно, потому что я не вижу ни одного файла App.config нигде в их базе выпуска. Насколько я понимаю, им нужно изменить свои регистраторы, чтобы они указывали на App.config, в противном случае, независимо от того, что я вставил туда, это не сработает.
Поэтому я подумал, что попробую протестировать простой файл, чтобы написать hello world с файлом app.config, и посмотреть, что я могу сделать. Это работало очень хорошо, когда я определил регистратор в коде, но как только я добавил файл app.config, регистратор перестал работать.
Находясь в папке на моем рабочем столе, у меня есть файлы Serilog dll от моего поставщика, и мои 2 файла также вставлены ниже, hw.cs и app.config. Я компилирую и запускаю его из командной строки, так как моя тестовая система не имеет доступа к Visual Studio или inte rnet.
Это работает: cs c .exe hw .cs /r:Serilog.dll /r:Serilog.Sinks.Console.dll /r:Serilog.Settings.AppSettings.dll
Когда я запускаю файл hw.exe, я См. только комментарии console.writeline (Шаг 1, Шаг 2 и т. д. c), а не комментарии регистратора.
Нужно ли делать что-то особенное, чтобы мой файл hw.cs знал, где находится файл App.config расположен? У меня есть правильные dll?
Спасибо за любую помощь в этом.
Код hw.cs ниже:
using System;
using Serilog;
namespace SerilogExample
{
class HelloWorld
{
static void Main()
{
Console.WriteLine("Step 1");
Log.Logger = new LoggerConfiguration()
.ReadFrom.AppSettings()
.CreateLogger();
Console.WriteLine("Step 2");
Log.Information("Hello world");
Console.WriteLine("Step 3");
int a = 10, b = 0;
Log.Debug("Display a and b: {A} and {B}", a, b);
Console.WriteLine("Step 4");
Log.Error("---pretend something went wrong");
Console.WriteLine("Step 5");
Log.CloseAndFlush();
}
}
}
App.config ниже:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="serilog:minimum-level" value="Debug" />
<add key="serilog:using:Console" value="Serilog.Sinks.Console" />
<add key="serilog:write-to:Console" />
</appSettings>
</configuration>