Добавление логирования хода выполнения программы
Доброго времени суток! Эта статья носит справочный характер. В ней приведен пример (своего рода quick start) использования логера log4net в программе на C# (пока без дополнительных разъяснений).
В первую очередь, нужно добавить в проект своей программы log4net.dll в качестве reference (описание того как это делается, выходит за рамки данной статьи). После чего, нужно выполнить ряд действий описанных ниже.
Шаг 1. Создать основной класс, отвечающий за обеспечение логирования в своем проекте:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using log4net; using log4net.Config; namespace TestLog { public static class Logger { private static ILog log = LogManager.GetLogger("LOGGER"); //Возвращает объект, через который будет осуществляться логирование public static ILog Log { get { return log; } } //Инициализация логера public static void InitLogger() { //Считывание конфигурации логера из файла XmlConfigurator.Configure(new System.IO.FileInfo("D:\\Logs\\TestConf.xml")); } } }
Шаг 2. Простейшая настройка логера (с помощью конфигурационного файла, путь к которому указан в методе InitLogger):
<?xml version="1.0" encoding="utf-8" ?> <configuration> <log4net> <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender"> <param name="File" value="D:\Logs\Exchange.log"/> <param name="AppendToFile" value="true"/> <maxSizeRollBackups value="10"/> <maximumFileSize value="5MB"/> <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%d %-5p %m%n"/> </layout> </appender> <logger name="LOGGER"> <appender-ref ref="LogFileAppender"/> </logger> </log4net> </configuration>
Шаг 3. Простейшее использование логера:
Logger.InitLogger(); //Запись в лог с уровнем "Debug" Logger.Log.Debug("Логер проинициализирован!");
Дальше приведены несколько примеров.
Пример 1. Создание расширения в виде вспомогательного метода (логирование с дополнительной информацией):
//Вспомогательный метод записи в лог массива данных (в шестнадцатеричном виде) в текстовым пояснением public void WriteToLog(string aText, byte[] aDatas) { if (aDatas == null) { Logger.Log.Debug(aText); return; } StringBuilder builder = new StringBuilder(); foreach(byte oneByte in aDatas) { builder.Append(string.Format("{0:X2} ", oneByte)); } Logger.Log.Debug(string.Format("\t{0}:\t{1}", aText, builder.ToString())); }
Пример 2. Использование вспомогательного метода:
//В ЛОГ WriteToLog("Запрос", toChannelArray);
5 ответов на Добавление логирования хода выполнения программы
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.
Ваш материал удивительно понятный.
Подскажите. Как из C# обратиться к голосовому движку виндовс на произношение текста из блокнота виндовс.
Мог бы создать тему , но форума нет.
Не уверен что найду ваш ответ(мне 50+)
Леплю микропрогу для себя.
Добрый день! Можно сделать следующим образом:
1. Создать консольное приложение на базе .Net Framework.
2. В проекте добавить reference (правой кнопкой мыши вызвать на References, выбрать Add Reference… в левой части выбрать пункт Assemblies, и в списке выбрать System.Speech).
3. Добавить в код using System.Speech.Synthesis;
4. В методе Main написать код:
SpeechSynthesizer synth = new SpeechSynthesizer();
synth.SetOutputToDefaultAudioDevice();
synth.Speak(«Это некоторый текст, который будет произнесён голосом!»);
Предварительно, текст, передаваемый в метод Speak можно считать из файла, или получить любым другим способом.
Здравствуйте.
Спасибо за ответ.
Скажите, всегда ли между C# и низкоуровневым языком виндовс
должен быть Net Framework,
и создаётся ли всё нужное в Visual Studio(я использую) автоматически.
Так ли это для си++?
Прошу вас подумать о кнопке в
WordPress «вопросы читателей на которые хочу ответить».
Я не собираюсь стать программистом т.к. уже зрение -3.
Буду рад редактированию ниже.
По нику думаю что вы как и я(раньше) сильно играли в шахматы.
если сильно не играли в шахматы.
извините.
Добрый вечер.
1. Если коротко, то для работы программ, написанных на C#, на целевом ПК обязательно должен быть установлен .Net Framework (это некоторая прослойка, которая обеспечивает работу программы и VS эту проблему к сожалению не решит). На на в Windows по умолчанию .Net Framework уже может быть установлен (зависит от версии Windows и версии .Net, для которой собрана программа).
2. Если речь идет о нативном C++ (не C++ для .Net), то на нем можно собрать программу, которая без проблем запустится на ПК без установки дополнительных компонентов.
3. -3 для программиста не приговор (тем более в наше время), было бы желание.
4. В шахматы сильно не играл, но увлекался, ник оттуда. ))
p.s. Кнопка, может быть и появится, если позволит время (сайтом уже давно не занимаюсь, если честно, а Ваш комментарий заметил почти случайно).