четверг, 30 августа 2012 г.

Логируем правильно

Недавно меня посетила мысль, которая должна появляться в голове каждого программиста при создании нового проекта. Чтобы избежать тупняка при появлении какого-нибудь бага, надо правильно логировать. Простенький логер написать дело 30 минут, но его проблема будет как раз в том что он простенький. Чтобы добавить способности современных логеров, вроде асинхронной записи, ротации, настройки через файл конфига придется повозиться. А значит отнять время у себя и проекта. Или можно взять готовое и не изобретать велосипед.) Именно так я и сделал. Выбор пал на NLog . Честно, хватит пары часов чтобы прочитать львиную долю  документации на сайте проекта, и еще меньше, чтобы начать им пользоваться. Все выше перечисленное в нем из коробки и еще куча полезных фишек.
Единственный для меня минус оказался лишь в том, что для беты VisualStudio 2012 которой я уже начал пользоваться удобный snippet не установился. Причина скорей в том, что из мануала я узнал, что такой есть и под VS 10 прекрасно работает, а в 12 нет. Т.е. убивала именно несправедливость:) Но это я переборол. Блокнот, пару минут гугления и созрело:

    
        
Nlog snippet logger Create log object using LogManager class from NLog namespace.
NLog <![CDATA[private static NLog.Logger log = NLog.LogManager.GetCurrentClassLogger();]]>
Складываем это в файл с расширением .snippet, и экспортируем в студию. Потом разошелся и добавил еще один, чтобы не забыть заполнять нужные поля в .config файле. Этот добавляем в xml снипеты

    
        
NLog config nlog Create nlog section for .config file
NLog <![CDATA[ ]]>
В последнем снипете в поле filename перед {shortdate} надо ставить $. Я этого делать не стал по 2 причинам. Во первых этот символ надо как-то экранировать, чтобы VS его считала обычним текстом, а во вторых для любого нового проекта папку для лога нужно будет указывать заново. Типа напоминалка получается. И все. Теперь можно логировать со спокойной душой.

Комментариев нет:

Отправить комментарий