Библиотеки логирования или самостоятельная реализация

Не просто. Хотя, в одном древнем проекте у меня тоже "своя реализация" и даже работает, но даже там в итоге пришлось делать и какое-то кэширование, и решать проблемы с многопоточным доступом к файлам логов, и какую-то ротацию придумывать.

Из существующих можно посмотреть 'Serilog':

1. Можно сконфигурировать прямо из кода парой строк для логирования и в файл, и в консоль, и в отладку (хотя можно и через файлы конфигурации при необходимости те же параметры задать).

2. Общий вес библиотек всего 360КБ.

Добавлено через 27 минут

Например:

C#Выделить код

1
2
3
4
5
6
7
8
9
10
11
12
13

        var loggerConfig = new LoggerConfiguration();
#if DEBUG
        loggerConfig.WriteTo.Console();
        loggerConfig.WriteTo.Debug();
#endif
        loggerConfig.WriteTo.File(
            path: "../logs/.log",
            rollingInterval: RollingInterval.Day,
            outputTemplate: "{Timestamp:HH:mm:ss.fff} [{Level:u1}] {Message:l}{NewLine}{Exception}");
 
        var serilogger = loggerConfig.CreateLogger();
        serilogger.Information("logger initialized");
        ....

09:11:44.212 [I] logger initialized

P.S.: но по мне так, даже на маленьких проектах, лучше сразу работать через абстракцию 'Microsoft.Extensions.Logging.ILogger', т.к. это избавляет от прямой зависимости от конкретной библиотеки логирования и делает логирование единообразным во всех проектах/библиотеках. Все популярные библиотеки логирования умеют и регистрироваться в качестве ILogger в DI-контейнерах, и предоставлять фабрику для ручного создания соответствующей надстройки.