"рд╡рдпрд╕реНрдХ" .NET рдХреЗ рддрд╣рдд, рдореИрдВрдиреЗ рд╣рдореЗрд╢рд╛ Jarek Kowalski рд╕реЗ NLog рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдФрд░ log4net рдХреНрдпреЛрдВ рдирд╣реАрдВ, рдЖрдк рдореЗрдВ рд╕реЗ рдХрдИ рдкреВрдЫреЗрдВрдЧреЗред
рд╕рдм рдХреБрдЫ, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдХрд╛рдлреА рд╡реНрдпрдХреНрддрд┐рдкрд░рдХ рд╣реИ, рд▓реЗрдХрд┐рди рдУрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗред
рдпрд╣ рд╕реНрд╡рд╛рдж рдФрд░ рд░рдВрдЧ, рд▓рдЧрд╛-рдЯрд┐рдк рдкреЗрди рдФрд░ рдкреНрд▓рд╛рд╕реНрдЯрд┐рд╕рд┐рди рд╣реИ, рд▓реЗрдХрд┐рди NLog рдмрд╕ рдмреЗрд╣рддрд░ рд╣реИред рдЖрджреЗрд╢ рдореЗрдВ рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдХреБрдЫ рд╣рддреНрдпрд╛рд░рд╛ рдорд╛рдкрджрдВрдб рджреЗ рджреЗрдВрдЧреЗ ...
- рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╡рд┐рдиреНрдпрд╛рд╕ред Log4net рдХреЗ рдмрд╛рдж - рддрд╛рдЬреА рд╣рд╡рд╛ рдХреА рд╕рд╛рдВрд╕ рдХреА рддрд░рд╣ред
- рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ .NET рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдкреЗрд╢реЗрд╡рд░ .NET рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдпрд╣ рд╕реНрд░реЛрдд рдФрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рджреНрд╡рд╛рд░рд╛ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рдорд╛рди log4net, рд╕реВрддреНрд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рджреЗрдЦрддреЗ рд╣реБрдП, рд╕рд╣реА рд░реВрдк рд╕реЗ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде .NET рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдореВрд▓реА recompiled рдЬрд╛рд╡рд╛ рдХреЛрдб рд╣реИ (рдЖрдЦрд┐рд░рдХрд╛рд░, C # рдХрд╛рдлреА рдЬрд╛рд╡рд╛ рдирд╣реАрдВ рд╣реИ;)
- рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣реА рд╣реИред рджреВрд╕рд░реЗ рджрд┐рди, рдкрд╣рд▓рд╛ рдмреАрдЯрд╛ NLog 2.0 рд╕рднреА .NET рд╕реНрдЯреИрдХреНрд╕ рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рдореЛрдиреЛ, рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдФрд░ рд╕реАрдПрдл рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рд╡рд╣реА рд▓реЙрдЧ 4рдиреЗрдЯ, рдЪреЗрдХ-рдЗрди рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реБрдП, 2003 рдореЗрдВ рдЕрдкрдиреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд░реБрдХ рдЧрдпрд╛ред
рд╣рдо рдЗрд╕ рддреБрд▓рдирд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдВрдЧреЗ рдФрд░ рд╕реАрдзреЗ рд╕рдорд╛рдзрд╛рди рдкрд░ рдЬрд╛рдПрдВрдЧреЗред
- NLog 2.0 рдмреАрдЯрд╛ 1 рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ, рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред
- рд╣рдорд╛рд░реЗ рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ NLog.dll рдХрд╛ рд▓рд┐рдВрдХ рдЬреЛрдбрд╝реЗрдВред рдореЗрд░реЗ рдкрд╛рд╕ VS.NET 2010 рдХреЗ рд▓рд┐рдП рдЙрддреНрдкрд╛рджрдХрддрд╛ рд╢рдХреНрддрд┐ рдЙрдкрдХрд░рдг рд╣реИрдВ, рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд▓рд┐рдВрдХ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдмрд╣реБрдд рдирдП рд╕рдВрд╡рд╛рдж рд╣реИрдВ, рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ NLog рдХреЗ рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд▓рд┐рдВрдХ рдкрд╛рддрд╛ рд╣реИред
- рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ рдирдИ рдЖрдЗрдЯрдо -> NLog | рдХрдВрд╕реЛрд▓ NLog рдХреЙрдиреНрдлрд╝рд┐рдЧред рд╣рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рдирдИ рдлрд╛рдЗрд▓ рдорд┐рд▓реА рдЬрд┐рд╕рдХрд╛ рдирд╛рдо NLog.config рд╣реИред рдпрд╣ рд╣рдорд╛рд░реЗ рд▓реЙрдЧрд┐рдВрдЧ рдХрд╛ рд╕реНрдерд┐рд░ рд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб рдПрдХреНрд╢рди рд╕рд╛рдордЧреНрд░реА рдореЛрдб рдореЗрдВ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдореЗрдВ рдЧрд┐рд░рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдлрд┐рд░ рд╢реБрд░реВ рдореЗрдВ рдкрдврд╝рд╛ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ NLog рдпрд╣ рд╕рдм рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИред рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЬрдбрд╝ рдореЗрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдФрд░ рдПрдХреНрд╢рди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ -> рд╕рд╛рдордЧреНрд░реАред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реНрдерд┐рд░ рд╣реИ, рдЕрд░реНрдерд╛рдд NLog.config рдХреЛ xap- рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдмрд┐рдирд╛ рдмрджрд▓рд╛рд╡ рдХреЗ, рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЗрд╢рд╛рд░реЛрдВ рдХреЗ рдЕрдзреАрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред NLog.config рдХреЛ рдмрджрд▓рддреЗ рд╕рдордп рд▓реЙрдЧрд┐рдВрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдХрд┐рд╕реА рднреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЕрдкрдбреЗрдЯ рдХрд╛ рдХреЛрдИ рд╕рд╡рд╛рд▓ рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдбреЗрд╕реНрдХрдЯреЙрдк .NET рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИред
- рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓реЙрдЧ рдЗрди рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рдПрдХ рдФрд░ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдореЗрдВ рдкреВрд░реНрдг-рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд┐рдзрд╛, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рд╢реБрд░реВ рдореЗрдВ рдЕрд╕рд╛рдорд╛рдиреНрдп рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рджреВрд░рд╕реНрде рдорд╢реАрди рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░реЗрдВрдЧреЗред рдХреНрд▓рд╛рдЗрдВрдЯ Log2Console рдХреНрд▓рд╛рдЗрдВрдЯ рд╣реЛрдЧрд╛, рдЬрд┐рд╕реЗ рд▓реЙрдЧ 4net рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рдВрдХреАрд░реНрдг рд╕рд░реНрдХрд▓ рдореЗрдВ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
static readonly Logger _log = LogManager.GetCurrentClassLogger();
рдФрд░:
_log.Debug(" {0} NLog", DateTime.Now);
рдпрд╣рд╛рдБ рдореИрдВ рдереЛрдбрд╝реА рдирд┐рд░рд╛рд╢рд╛ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рдерд╛ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдпреВрдбреАрдкреА-рд╕реЙрдХреЗрдЯреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рддрджрдиреБрд╕рд╛рд░, Log2Console рд╕реЗ UDP-Receiver, рдЬреЛ NLog рдХреЛ рд╕реБрдирдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реБрдЖ рдХрд░рддрд╛ рдерд╛, рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдореЗрдВ рдмреЗрдХрд╛рд░ рд╣реИред рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдЯреАрд╕реАрдкреА-рд╕реЙрдХреЗрдЯреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди Log2Console рдореЗрдВ рдХреЛрдИ рдЯреАрд╕реАрдкреА-рд░рд┐рд╕реАрд╡рд░ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдЦреИрд░, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛, рдЪрд▓реЛ Log2Console рдХреА рднрд╛рд╡рдирд╛ рдореЗрдВ рдХреБрдЫ рдФрд░ рджреЗрдЦреЗрдВ, рд▓реЗрдХрд┐рди рдЯреАрд╕реАрдкреА рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рдеред
рд╡реИрд╕реЗ, рджреЗрд╢реА NLog-ovsky NLogViewer рдЗрддрдирд╛ рдЫреЛрдЯрд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕реЗ рдПрдХ рдЕрд▓реНрдлрд╛ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рднреА рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ ...
рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдЦреБрдж рдХреЛ
рдЕрдкрдиреА рдмрд╛рд╣реЛрдВ рдХреЛ рдКрдкрд░ рдЙрдард╛рддреЗ рд╣реБрдП, рдЕрдкрдиреА рдмреЗрд▓реНрдЯ рдХреЛ рдХрд╕рдХрд░ рдФрд░ рд▓реЗрд╕ рдХреЛ рдХрд╕рддреЗ рд╣реБрдП, рднреЛрдЬрди рдФрд░ рдкреНрд░рд╛рд╡рдзрд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рд╕реНрдЯреЙрдХ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреА рдорд╛рд░рд┐рдпрд╛рдирд╛ рдЯреНрд░реЗрдВрдЪ рдореЗрдВ рдбреВрдм рдЧрдпрд╛ ...
рдПрдХ рдШрдВрдЯреЗ рдореЗрдВ, Log2Console рдХреЗ рд▓рд┐рдП рдЯреАрд╕реАрдкреА-рд░рд┐рд╕реАрд╡рд░ рддреИрдпрд╛рд░ рд╣реЛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ TCP-Receiver рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди NLog.config рдореЗрдВ рджрд┐рдЦрддрд╛ рд╣реИ:
<target name="network" xsi:type="NLogViewer" address="tcp4://deepblue:4505" />
рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдлрд┐рд░ рд╕реЗ, рдереЛрдбрд╝реА рдирд┐рд░рд╛рд╢рд╛ рдореБрдЭреЗ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реА рдереАред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рд╕рд┐рд░реНрдл рдПрдХ рд╡рд┐рд╢реЗрд╖ рдирд┐рдордВрддреНрд░рдг рдХреЗ рдмрд┐рдирд╛ рдЖрдкрдХреЗ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдкрд░ рдбреЗрдЯрд╛ рдирд╣реАрдВ рдбрд╛рд▓ рд╕рдХрддрд╛ рд╣реИред рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рддреАрди рджрд░реНрдЬрди рдмрдВрджрд░рдЧрд╛рд╣ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ (4502-4532), рдФрд░ рд╡реЗ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдиреБрдорддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрд░реНрдерд╛рддреН, рдкреЛрд░реНрдЯ 943 рдкрд░ рд▓рдХреНрд╖реНрдп рдорд╢реАрди рдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ ClientAccessPolicy.xml рдлрд╝рд╛рдЗрд▓ рдХреА рдореЗрдЬрдмрд╛рдиреА рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдЬреЛ рдХрд╣рддреА рд╣реИ рдХрд┐ рдХреМрди рдкрд╛рдЧрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдореЗрд░реЗ рдмреНрд▓реЙрдЧ рдореЗрдВ рдХрд┐рд╕реА рд╕реЗ рдЗрд╕ рдиреАрддрд┐ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рдЦреЛрдЬрдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдореЗрд░реЗ рдЯреЗрд╕реНрдЯ рдореИрд╕реЗрдЬ рд▓реЙрдЧрд┐рдирдХреЛрдирд╕реЛрд▓ рдореЗрдВ рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рднреЗрдЬреЗ рдЧрдП рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдкрд╛рдХрд░ рдЦреБрд╢реА рд╣реБрдИред

рдЗрд╕ рдкрд░, рдЪреМрдХрд╕ рдкрд╛рдардХ рдХрд╣реЗрдЧрд╛ рдХрд┐ рдпрд╣ рдЖрд░рд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рд▓реЗрдХрд┐рди рдирд╣реАрдВ, рдЕрдЧрд▓реЗ рджрд┐рди, рдЗрд╕ рдиреАрддрд┐-рд╕рд░реНрд╡рд░ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрд╛рддрд╛рд░ рднреВрд▓рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рдЦреБрдж рдХреЛ Log2Console рдореЗрдВ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреЛ рдЫреАрди рд▓рд┐рдпрд╛ рдФрд░ рдирд╛рд░рд╛рдЬ рд╣реЛ рдЧрдпрд╛ред
рдХреЛрд▓реА рд╕реЗ рдкрд╣рд▓реЗ / рдЦрддреНрдо / рдкрд░реНрдпрд╛рдкреНрдд / Genug! - рдореИрдВрдиреЗ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдФрд░ Log2Console рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд░рд┐рд╕реАрд╡рд░ рдЬреЛрдбрд╝рд╛, рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рд╣реИ SilverlightClientAccessPolicy-Receiverред Log2Console рдЪрд▓ рд░рд╣реЗ рд░рд┐рд╕реАрд╡рд░ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдкрд░ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдЕрдм рдореИрдВ рдкреЙрд▓рд┐рд╕реА рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░рдирд╛ рдирд╣реАрдВ рднреВрд▓рддрд╛ рдФрд░ рдореИрдВ рдирд╛рд░рд╛рдЬ рдирд╣реАрдВ рд╣реВрдБ :)

рдпрд╣рд╛рдБ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, рдЖрд░рд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрднрд╡ рд╣реИ ...
рд▓реЗрдХрд┐рди рд╡рд╣рд╛рдБ рдпрд╣ рдерд╛ред рдореИрдВрдиреЗ Log2Console рдХреЗ рд▓реЗрдЦрдХ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд┐рдпрд╛, рдЙрд╕реЗ рд╕рдорд╕реНрдпрд╛ рдмрддрд╛рдИ рдФрд░ рд╕рдорд╛рдзрд╛рди рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ред рдЙрдиреНрд╣реЛрдВрдиреЗ Ctrl + Enter рдХреЛ рд╣рд┐рд▓рд╛ рджрд┐рдпрд╛, рдФрд░ рдлрд┐рд░ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ Log2Console WPF рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ ... рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рджреГрдврд╝рддрд╛ рд╕реЗ рд╡рд┐рд░реЛрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ... рд▓реЗрдХрд┐рди Log2Console WinForms рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡реЗрджрди рд╣реИ, WPF рдХреЛ рдХреБрддреНрддреЗ рдХреА рддрд░рд╣ рдкрд╛рдВрдЪрд╡реЗрдВ рдкрд╣рд┐рдпрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдЙрд╕ рд░рд╛рдд, Win32CodePack рд╕реЗ рд╕рд░реНрдЬрд┐рдХрд▓ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХреЗ рд╕рд╛рде, рдореИрдВрдиреЗ рд╡рд┐рдВрдбреЛрдЬ 7 рдЯрд╛рд╕реНрдХ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдХрд╛рдЯ рджрд┐рдпрд╛ ...
LINQ рдХреЛ рднреА рд░рд╛рд╕реНрддреЗ рдореЗрдВ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рджреЛ Min / Max рдореЗрдердб рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛) ...
рдФрд░ рдЗрд╕рд▓рд┐рдП, Log2Console .NET 2.0 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рдФрд░ рдореИрдВ, рдпрд╣ рдкрд╕рдВрдж рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдПрдХ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛ рдмрди рдЧрдпрд╛ ...
рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдФрд░ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ 2.0 рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде Log2Console рдХрд╛ рдПрдХ рдЕрджреНрдпрддрди рд╕рдВрд╕реНрдХрд░рдг рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╣рд╛рдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред NLog рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рд╛рдЗрдЯ рдпрд╣рд╛рдБ рд╣реИ ред
рдпрд╣ рдХрд╣рд╛рдиреА рдХрд╛ рдЕрдВрдд рд╣реИ, рдФрд░ рдЬрд┐рд╕рдиреЗ рднреА рд╕реБрдирд╛ рд╡рд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ!