Недавно меня посетила мысль, которая должна появляться в голове каждого программиста при создании нового проекта. Чтобы избежать тупняка при появлении какого-нибудь бага, надо правильно логировать. Простенький логер написать дело 30 минут, но его проблема будет как раз в том что он простенький. Чтобы добавить способности современных логеров, вроде асинхронной записи, ротации, настройки через файл конфига придется повозиться. А значит отнять время у себя и проекта. Или можно взять готовое и не изобретать велосипед.) Именно так я и сделал. Выбор пал на NLog . Честно, хватит пары часов чтобы прочитать львиную долю документации на сайте проекта, и еще меньше, чтобы начать им пользоваться. Все выше перечисленное в нем из коробки и еще куча полезных фишек.
Единственный для меня минус оказался лишь в том, что для беты VisualStudio 2012 которой я уже начал пользоваться удобный snippet не установился. Причина скорей в том, что из мануала я узнал, что такой есть и под VS 10 прекрасно работает, а в 12 нет. Т.е. убивала именно несправедливость:) Но это я переборол. Блокнот, пару минут гугления и созрело:
Единственный для меня минус оказался лишь в том, что для беты VisualStudio 2012 которой я уже начал пользоваться удобный snippet не установился. Причина скорей в том, что из мануала я узнал, что такой есть и под VS 10 прекрасно работает, а в 12 нет. Т.е. убивала именно несправедливость:) Но это я переборол. Блокнот, пару минут гугления и созрело:
Складываем это в файл с расширением .snippet, и экспортируем в студию. Потом разошелся и добавил еще один, чтобы не забыть заполнять нужные поля в .config файле. Этот добавляем в xml снипетыNlog snippet logger Create log object using LogManager class from NLog namespace. NLog <![CDATA[private static NLog.Logger log = NLog.LogManager.GetCurrentClassLogger();]]>
В последнем снипете в поле filename перед {shortdate} надо ставить $. Я этого делать не стал по 2 причинам. Во первых этот символ надо как-то экранировать, чтобы VS его считала обычним текстом, а во вторых для любого нового проекта папку для лога нужно будет указывать заново. Типа напоминалка получается. И все. Теперь можно логировать со спокойной душой.NLog config nlog Create nlog section for .config file NLog <![CDATA[
]]>