Показать сообщение отдельно
Непрочитано 23.03.2018, 10:45   #3
Пользователь

По умолчанию Re: c# логирование

наследуемся от StreamWriter -> назначаем его выводом консоли.
примерно так
Код:
    internal class ConsoleWriter : StreamWriter {

        public static ConsoleWriter Instance = new ConsoleWriter();

        public ConsoleWriter() : base(new MemoryStream()) {
            AutoFlush = true;
            if (base.BaseStream.Position != 0) {
                base.WriteLine();
                base.WriteLine();
            }
        }

        public override void WriteLine(string value) {
            _Write(value + Environment.NewLine);
        }

        public override void WriteLine(string format, params object[] arg) {
            _Write(string.Format(format, arg) + Environment.NewLine);
        }

        public override void WriteLine() {
            _Write(Environment.NewLine);
        }

        public override void Write(string value) {
            _Write(value);
        }

        public override void Write(string format, params object[] arg) {
            _Write(string.Format(format, arg));
        }

        private void _Write(string text) {
            File.AppendAllText(@"C:\log.txt", text);
        }
    }
Код:
Console.SetOut(ConsoleWriter.Instance);

Последний раз редактировалось jr__; 23.03.2018 в 14:22.
jr__ вне форума Ответить с цитированием