рд▓реЙрдЧ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░

рдореЗрд░рд╛ рд╡рд┐рдХрд╛рд╕ рдЕрдиреБрднрд╡ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╡рд┐рдВрдбреЛрдЬрд╝ рдФрд░ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рдмрд╛рдЗрдирд░реА рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХрддрдо рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВред рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд▓реЙрдЧрд┐рдВрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрдИ рд╕реНрдерд┐рд░ рд╕рдорд╛рдзрд╛рди рдЬрдорд╛ рд╣реБрдП рд╣реИрдВред

рд╡рд┐рд╖рдп рдЗрд╕ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░рдВрддрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдиреМрд╕рд┐рдЦрд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

рдпрд╣рд╛рдБ рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореБрджреНрджреЛрдВ рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдБ:



рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдЕрдкрдиреЗ рдкрд░рд┐рд╡рд░реНрдзрди рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░реВрдВрдЧрд╛ред
рд▓реЗрдЦрдХ рдХреА рддрд░рд╣, рдореИрдВ NLog рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЗрд╕рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдХреЗ рдмрд╛рдж рдмреЗрд╢рдХ
рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд▓рдХрдбрд╝рд╣рд╛рд░реЗ рдореЗрдВ рдЙрдирдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рдЕрднреНрдпрд╛рд╕ рдЙрди рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╡реИрд╕реЗ, log4net рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдЬрд╛рд░реА рд╣реИ ред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, "рдПрдХ рд╕рдореНрдорд╛рдирд┐рдд рд▓рдХрдбрд╝рд╣рд╛рд░реЗ рдХреА рд╕реБрд╡рд┐рдзрд╛рдПрдБ" рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рджреЛ рдЖрд╡рд╢реНрдпрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реИрдВ:
  1. рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЕрд╡рд▓реЛрдХрди / рдкреБрдирдГ рд▓реЛрдб рдХрд░рдирд╛ рдХреЗрд╡рд▓ рдПрдХ рдЙрдкрдпреЛрдЧреА рдХреМрд╢рд▓ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рдмрд╣реБрдд рд╣реА рдЖрд╡рд╢реНрдпрдХ рд╣реИред
  2. рдСрдл рдж рд╕реНрдЯреЗрдЯ рдореЗрдВ рдиреНрдпреВрдирддрдо рд╣рд╕реНрддрдХреНрд╖реЗрдкред


рд╣реБрдб NLog рдХреЗ рддрд╣рдд


рджреВрд╕рд░реА рд╕реБрд╡рд┐рдзрд╛ рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдкрд░ рддреБрд░рдВрдд рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВред

рдЕрдХреНрд╕рд░, рдХреЛрдб рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдПрдХ рдЪрд░ рдХреЗ рдореВрд▓реНрдп рдХреЛ рджреЗрдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░, рд╡реЗ рдбрд┐рдмрдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд░реБрдЪрд┐ рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд░реЛрдХрддреЗ рд╣реИрдВред рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ рд╕реНрдкрд╖реНрдЯ рд╕рдВрдХреЗрдд рд╣реИ рдХрд┐ рдЯреНрд░реЗрд╕ рдХрд╛ рдирд┐рд╖реНрдХрд░реНрд╖ рдЗрд╕ рд╕реНрдерд╛рди рдкрд░ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдкреВрд░рд╛, рд╣рдо рддреБрд░рдВрдд рдЗрд╕ рдЪрд░ рдХрд╛ рдПрдХ рд╕реНрдХреИрди рдФрд░ рдЕрдиреНрдп рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдорд┐рд▓рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдореИрдВ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдбрд┐рдмрдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВред

рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдПрдХ рд╕реИрдиреНрдп рдЖрд╡реЗрджрди рдореЗрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╡рд┐рд╕реНрддреГрдд рд▓реЙрдЧрд┐рдВрдЧ рдмрдВрдж рднреА рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдЧрддрд┐ рдФрд░ рд╕рдорд╛рдирддрд╛ рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░ рд╕рдХрддрд╛ рд╣реИред

NLog рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:


рдХрдХреНрд╖рд╛ рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред

рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛! NLog рдХреЗ рд▓рд┐рдП, рдЖрдк рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рд╡рд┐рд╕реНрддреГрдд рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдХрдо рд╕реЗ рдХрдо рдкреНрд░рднрд╛рд╡ рдкрдбрд╝реЗрдЧрд╛ред рд▓реЗрдХрд┐рди, рдпрд╣ рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЖрдзреЗ рдХреЛрдб рдХреЛ рд╕рдорд░реНрдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИред

рдХреНрдпрд╛ рдФрд░ рдХреИрд╕реЗ рд▓реЙрдЧ рдЗрди рдХрд░реЗрдВ



рдирд┐рдпрдореЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:



рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд▓реЙрдЧ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддреЗ рд╕рдордп, рд╣рдореЗрд╢рд╛ рд╕рдВрднрд╛рд╡рд┐рдд рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЧрдгрдирд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ рдЬреЛ рд▓реЙрдЧ рдХреЗ рдЕрдХреНрд╖рдо рд╣реЛрдиреЗ рдкрд░ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдВрдЧреЗред

рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг (рдХреБрдЫ рд╡рд░реНрдЧ рдХрд╛ рдЯреБрдХрдбрд╝рд╛):
private static Logger Log = LogManager. GetCurrentClassLogger ( ) ; <br/>
<br/>
public string Request ( string cmd, string getParams ) <br/>
{ <br/>
Uri uri = new Uri ( _baseUri, cmd + "?" + getParams ) ; <br/>
Log. Debug ( "Request for uri:`{0}'" , uri ) ; <br/>
HttpWebRequest webReq = ( HttpWebRequest ) WebRequest. Create ( uri ) ; <br/>
webReq. Method = "GET" ; <br/>
webReq. Timeout = _to ; <br/>
<br/>
string respText ; <br/>
try <br/>
{ <br/>
string page ; <br/>
using ( WebResponse resp = webReq. GetResponse ( ) ) <br/>
using ( Stream respS = resp. GetResponseStream ( ) ) <br/>
using ( StreamReader sr = new StreamReader ( respS ) ) <br/>
page = sr. ReadToEnd ( ) ; <br/>
Log. Trace ( "Response page:`{0}'" , page ) ; <br/>
return page ; <br/>
} <br/>
catch ( Exception err ) <br/>
{ <br/>
Log. Warn ( "Request for uri:`{0}' exception: {1}" , uri, err. Message ) ; <br/>
throw ; <br/>
} <br/>
}
private static Logger Log = LogManager. GetCurrentClassLogger ( ) ; <br/>
<br/>
public string Request ( string cmd, string getParams ) <br/>
{ <br/>
Uri uri = new Uri ( _baseUri, cmd + "?" + getParams ) ; <br/>
Log. Debug ( "Request for uri:`{0}'" , uri ) ; <br/>
HttpWebRequest webReq = ( HttpWebRequest ) WebRequest. Create ( uri ) ; <br/>
webReq. Method = "GET" ; <br/>
webReq. Timeout = _to ; <br/>
<br/>
string respText ; <br/>
try <br/>
{ <br/>
string page ; <br/>
using ( WebResponse resp = webReq. GetResponse ( ) ) <br/>
using ( Stream respS = resp. GetResponseStream ( ) ) <br/>
using ( StreamReader sr = new StreamReader ( respS ) ) <br/>
page = sr. ReadToEnd ( ) ; <br/>
Log. Trace ( "Response page:`{0}'" , page ) ; <br/>
return page ; <br/>
} <br/>
catch ( Exception err ) <br/>
{ <br/>
Log. Warn ( "Request for uri:`{0}' exception: {1}" , uri, err. Message ) ; <br/>
throw ; <br/>
} <br/>
}


рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рд╕рднреА рд▓реЙрдЧрд┐рдВрдЧ рддрд░реНрдХ рдЖрд╡рд╢реНрдпрдХ рдереЗред рдбреАрдмрдЧ рд╕рдВрджреЗрд╢ рдЙрди рддрд░реНрдХреЛрдВ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рд╕рд╛рде рд╣рдо рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдЖрдП рдереЗред рддреНрд░реБрдЯрд┐ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ, рд╣рдо рдбрд┐рдмрдЧ рд╕реНрддрд░ рдХреЗ рдЕрдХреНрд╖рдо рд╣реЛрдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЗрдирдкреБрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдирдХрд▓ рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдиреЗ рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рджреЗрдЧрд╛ред рд╣рдо рдПрдХ рдЕрдкрд╡рд╛рдж рд╕реНрдЯреИрдХ рдирд╣реАрдВ рдлреЗрдВрдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╣реИрдВрдбрд▓рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рд╣реИред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╡рд░реНрддрдорд╛рди рддреНрд░реБрдЯрд┐ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рдЙрд╕ рд╕рдВрджрд░реНрдн рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЕрдкрд╡рд╛рдж рдХреЗ рдЕрдкрд╡рд╛рдж рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдиреЗрддреГрддреНрд╡ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, WebException рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рддрд┐ рдлрд╝реАрд▓реНрдб рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

рд╕реБрд░рдХреНрд╖рд╛ рдЙрдкрд╛рдпреЛрдВ рдХреЛ рд▓реЙрдЧ рдХрд░реЗрдВ


NLog рдХреА рдХреБрдЫ рдСрдЯреЛ-рд▓реЙрдЧрд┐рдВрдЧ рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдЗрд╕ рдмрд╛рдд рдХреА рдХреЛрдИ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЕрдВрдд рдореЗрдВ рд▓реЙрдЧ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИред

рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, AppDomain.ProcessExit рдЗрд╡реЗрдВрдЯ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдХреЗ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣реА рдирд╣реАрдВ рд╣реИред рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рд▓реЙрдЧ рд╕рд╣рд┐рдд рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдЗрд╕ рдШрдЯрдирд╛ рдХрд╛ рд╣реИрдВрдбрд▓рд░ рдПрдХ рд╕реАрдорд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╣реИред .Net рдореЗрдВ, рдпрд╣ рд░рди рдЯрд╛рдЗрдо 2 рд╕реЗрдХрдВрдб рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИ, рдЬрдмрдХрд┐ рдореЛрдиреЛ рдореЗрдВ рдпрд╣ рдПрдХ рдереНрд░реЗрдбрдкреВрд▓ рд╣реИ ред рдЗрд╕рд▓рд┐рдП, рдЕрдзрд┐рдХ рдЕрдиреБрдХреВрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реИред

рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ AppDomain.UnhandledException рдШрдЯрдирд╛ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ рд╣реИред рдЗрд╕рдореЗрдВ, рд▓реЙрдЧ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рддреНрд░реБрдЯрд┐ рдЬрд╛рдирдХрд╛рд░реА рд▓рд┐рдЦреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ рд▓реЙрдЧрдореИрдирдЧрд░ рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдлрд╝реНрд▓рд╢ () ред рдЗрд╕ рдИрд╡реЗрдВрдЯ рдХрд╛ рд╣реИрдВрдбрд▓рд░ рдЙрд╕реА рдереНрд░реЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЕрдкрд╡рд╛рдж рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ, рдФрд░ рдЕрдВрдд рдореЗрдВ, рддреБрд░рдВрдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЕрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реИред
private static readonly Logger Log = LogManager. GetCurrentClassLogger ( ) ; <br/>
<br/>
public static void Main ( string [ ] args ) <br/>
{ <br/>
AppDomain. CurrentDomain . UnhandledException += OnUnhandledException ; <br/>
( ... ) <br/>
LogManager. Flush ( ) ; <br/>
} <br/>
<br/>
static void OnUnhandledException ( object sender, UnhandledExceptionEventArgs e ) <br/>
{ <br/>
Log. Fatal ( "Unhandled exception: {0}" , e. ExceptionObject ) ; <br/>
LogManager. Flush ( ) ; <br/>
}
private static readonly Logger Log = LogManager. GetCurrentClassLogger ( ) ; <br/>
<br/>
public static void Main ( string [ ] args ) <br/>
{ <br/>
AppDomain. CurrentDomain . UnhandledException += OnUnhandledException ; <br/>
( ... ) <br/>
LogManager. Flush ( ) ; <br/>
} <br/>
<br/>
static void OnUnhandledException ( object sender, UnhandledExceptionEventArgs e ) <br/>
{ <br/>
Log. Fatal ( "Unhandled exception: {0}" , e. ExceptionObject ) ; <br/>
LogManager. Flush ( ) ; <br/>
}


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ LogManager.Flush () рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд╣рд╛рдВ рднреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдорд╛рдкреНрддрд┐ рд╕рдВрднрд╡ рд╣реИред рд╕рднреА рдЧреИрд░-рдкреГрд╖реНрдарднреВрдорд┐ рдереНрд░реЗрдбреНрд╕ рдХреЗ рдЕрдВрдд рдореЗрдВред

рдпрджрд┐ рдЖрдкрдХрд╛ рдЖрд╡реЗрджрди рдПрдХ рдЬреАрдд-рд╕реЗрд╡рд╛ рдпрд╛ Asp.Net рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдХреЛрдб рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рдЖрд░рдВрдн рдФрд░ рдЕрдВрдд рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХрд┐рддрдирд╛ рд▓реЙрдЧ рдЗрди рдХрд░рдирд╛ рд╣реИ


рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрдВрднреАрд░ рд╕рдорд╕реНрдпрд╛ред рдЖрдк рд╣рдореЗрд╢рд╛ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЛрдб рдмрд╣реБрдд рдмреБрд░рд╛ рд▓рдЧрдиреЗ рд▓рдЧрддрд╛ рд╣реИред рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдЪрд╛рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдд рд╣реВрдВред

рд▓реЙрдЧрд┐рдВрдЧ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдЯреНрд░реЗрд╕ рд╕реНрддрд░ рд▓реЙрдЧрд┐рдВрдЧ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЯреНрд░реЗрд╕ рдФрд░ рдбрд┐рдмрдЧ рдХрд╛ рд╕реНрддрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЬреЛ рдХреБрдЫ рдЕрдзрд┐рдХ рд╣реИ рд╡рд╣ рддрдХрдиреАрдХреА рд╕рд╣рд╛рдпрддрд╛ рдФрд░ рдкреНрд░рд╡реЗрд╢ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕реНрддрд░ рдкрд░ , рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рд╕рд╣реА рдЙрддреНрддрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП: "рдХреНрдпрд╛ рд╣реБрдЖ?", "рдХреНрдпреЛрдВ?" рдФрд░, рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ, рддреЛ "рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд░реЗрдВ?"ред рдпрд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рдЪ рд╣реИред

рд▓реЙрдЧрд┐рдВрдЧ рд╕реНрддрд░реЛрдВ рдХреА рдЧреБрдгрд╛рддреНрдордХ рд░рдЪрдирд╛ рдХрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣рд╛рдВ рд╣рдо рдХреЗрд╡рд▓ рдорд╛рддреНрд░рд╛рддреНрдордХ рд░рдЪрдирд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ:


рдореБрдХрд╛рдмрд▓рд╛ рддреИрдирд╛рддреА рд╣реИ



рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╡рд┐рдХрд╛рд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рддрдХ рдкрд╣реБрдВрдЪ рдЧрдпрд╛ рд╣реИред
рд╣рдо рд▓реЙрдЧ рд░реЛрдЯреЗрд╢рди, рдлрд╝рд╛рдЗрд▓ рдЖрдХрд╛рд░ рдФрд░ рдЗрддрд┐рд╣рд╛рд╕ рдХреА рдЧрд╣рд░рд╛рдИ рдХреЗ рдореБрджреНрджреЛрдВ рдХреЛ рд╕реНрдердЧрд┐рдд рдХрд░ рджреЗрдВрдЧреЗред рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИ рдФрд░ рд╕реЗрд╡рд╛ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдореИрдВ рдХреЗрд╡рд▓ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╢рдмреНрджрд╛рд░реНрде рд╕рдВрдЧрдарди рдкрд░ рдзреНрдпрд╛рди рдХреЗрдиреНрджреНрд░рд┐рдд рдХрд░реВрдВрдЧрд╛ред рдЙрдиреНрд╣реЗрдВ 3 рд╕рдореВрд╣реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореЙрдбреНрдпреВрд▓ рд▓реЙрдЧ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЕрд▓рдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рд╕реЗ рдореИрдВ рдЕрднреА рднреА рдкреНрд░рддреНрдпреЗрдХ рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ред

  1. рдЬрд╛рдирдХрд╛рд░реА рд╕рдореВрд╣, рд╕рднреА рд╕реНрд░реЛрддреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреБрдХреНрдд рд╕реНрддрд░ рдХреЗ рд╕рд╛рдеред рдпрд╣ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирдХрд╛рд░реА рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪреАрдЬреЗрдВ рдпрд╣рд╛рдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ: рдЬрдм рдЖрд╡реЗрджрди рд╢реБрд░реВ рд╣реБрдЖ, рдХреНрдпрд╛ рд╡рд┐рдиреНрдпрд╛рд╕ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкрдврд╝реЗ рдЧрдП рд╣реИрдВ, рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рд╕реЗрд╡рд╛рдПрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдЖрджрд┐ред рдЗрд╕рдХреА рдореБрдЦреНрдп рд╕рдВрдкрддреНрддрд┐: рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЖрдХрд╛рд░ рдХреЗрд╡рд▓ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреБрдирдГ рдЖрд░рдВрдн рд╣реЛрддрд╛ рд╣реИред рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рдмрдврд╝рдиреА рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХреА рд╕рдлрд▓рддрд╛ рдХрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдмрд╛рд╣рд░реА рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреАрд╡рд░реНрдб рддреНрд░реБрдЯрд┐ рдФрд░ рдШрд╛рддрдХ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рд╕рддреНрдпрд╛рдкрди рд╣рдореЗрд╢рд╛ рдЕрдиреБрдорд╛рдирд┐рдд рд░реВрдк рд╕реЗ рдХрдо рд╕рдордп рд▓реЗрдЧрд╛ред
  2. рдЪреЗрддрд╛рд╡рдиреА рд╕рдореВрд╣ред рдпрд╣ рднреА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирдХрд╛рд░реА рд╣реИред рдпрд╣ рдлрд╝рд╛рдЗрд▓ рд╕рд╛рдорд╛рдиреНрдп рдСрдкрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдЕрдиреБрдкрд╕реНрдерд┐рдд рдпрд╛ рдЦрд╛рд▓реА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рддрджрдиреБрд╕рд╛рд░, рдЗрд╕рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдирд┐рдЧрд░рд╛рдиреА рддреБрд░рдВрдд рдПрдХ рдЦрд░рд╛рдмреА рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрдЧреАред рд╡рд┐рднрд┐рдиреНрди рд╕реНрд░реЛрддреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рдЪреАрд▓реЗ рдврдВрдЧ рд╕реЗ рдлрд┐рд▓реНрдЯрд░ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдХреЗ, рдЖрдк рддрдм рдХрд╛рдлреА рд╕рдЯреАрдХ рдорд╛рдирджрдВрдб рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рдЖрдкрдХреЛ рдЖрдорддреМрд░ рдкрд░ рд╕реЗрд╡рд╛ рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред
  3. рд╕рдореВрд╣ рдЕрд╡рд▓реЛрдХрди ред рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рджреМрд░рд╛рди рдХреБрдЫ рд╕рдорд╕реНрдпрд╛ рдореЙрдбреНрдпреВрд▓ рдЙрдЬрд╛рдЧрд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдбрд┐рдмрдЧ рдбреНрд░рд┐рд▓ рдореЗрдВ рдЙрдирд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдВ рднреЗрдЬреА рдЬрд╛рддреА рд╣реИред


рдпрджрд┐ рдЖрд╡реЗрджрди рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ рджреЛ рд╕рдореВрд╣ рд╕рдВрдЪрд╛рд▓рди рдореЗрдВ рд░рд╣рддреЗ рд╣реИрдВред

рдХреНрд░реИрд╢ рдЬрд╛рдВрдЪ


рдЬрдм рдХреЛрдИ рд░рдирд┐рдВрдЧ рд╕реЗрд╡рд╛ рдХрд┐рд╕реА рддреНрд░реБрдЯрд┐ рдХреЗ рд▓рдХреНрд╖рдг рджрд┐рдЦрд╛рддреА рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рддреБрд░рдВрдд рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╢рд╛рдпрдж рд╣рдо рдЧрд▓рдд рдереНрд░реЗрдб рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рд╕реЗ рдЬреБрдбрд╝реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП "рднрд╛рдЧреНрдпрд╢рд╛рд▓реА" рд╣реИрдВред рдФрд░ рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдЧрд▓реА рдмрд╛рд░ рдЗрд╕рдХреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЗ рд▓рд┐рдП рдХрд┐рддрдирд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдирд┐рдЧрд░рд╛рдиреА рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╡рд╣ рд╣реИ рдЬрд┐рд╕реЗ рдПрдХ рд╕рднреНрдп рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рдЬрдм рд╣рдореЗрдВ рдкреБрд╖реНрдЯрд┐ рдорд┐рд▓реА рдХрд┐ рдирдпрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рд╣рдо рдлрд┐рд░ рд╕реЗ рд╡рд┐рдлрд▓рддрд╛ рдХреЛ рднрдбрд╝рдХрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдХрдИ рдмрд╛рд░ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИред рдпрд╣ "рдкреНрд░рдпреЛрдЧрд╢рд╛рд▓рд╛" рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЗрд╕рдХреЗ рдкреНрд░рдЬрдирди рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред рдЕрдЧрд▓рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХрд╛ рдХрд╛рдо рд╣реИред рдЗрд╕ рдмреАрдЪ, рдЖрдк рд░рд┐рдмреВрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд▓реЙрдЧ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рдмрдирд╛рдирд╛ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИред
рдЙрджрд╛рд╣рд░рдг, рдореБрдХрд╛рдмрд▓рд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ред
<nlog autoReload = "true" > <br/>
<targets > <br/>
<target name = "fileInfo" type = "AsyncWrapper" queueLimit = "5000" overflowAction = "Block" > <br/>
<target type = "File" fileName = "${basedir}/logs/info.log" /> <br/>
</target > <br/>
<target name = "fileWarn" type = "AsyncWrapper" queueLimit = "5000" overflowAction = "Block" > <br/>
<target type = "File" fileName = "${basedir}/logs/warn.log" /> <br/>
</target > <br/>
</targets > <br/>
<br/>
<rules > <br/>
<logger name = "*" minlevel = "Info" writeTo = "fileInfo" /> <br/>
<logger name = "*" minlevel = "Warn" writeTo = "fileWarn" /> <br/>
</rules > <br/>
</nlog >
<nlog autoReload = "true" > <br/>
<targets > <br/>
<target name = "fileInfo" type = "AsyncWrapper" queueLimit = "5000" overflowAction = "Block" > <br/>
<target type = "File" fileName = "${basedir}/logs/info.log" /> <br/>
</target > <br/>
<target name = "fileWarn" type = "AsyncWrapper" queueLimit = "5000" overflowAction = "Block" > <br/>
<target type = "File" fileName = "${basedir}/logs/warn.log" /> <br/>
</target > <br/>
</targets > <br/>
<br/>
<rules > <br/>
<logger name = "*" minlevel = "Info" writeTo = "fileInfo" /> <br/>
<logger name = "*" minlevel = "Warn" writeTo = "fileWarn" /> <br/>
</rules > <br/>
</nlog >

рдлрд┐рд▓реНрдЯрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рд╕рдмрд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рд▓реЙрдЧрд┐рдВрдЧ рд╕реНрддрд░реЛрдВ рдХреА рд╕рд╛рдкреЗрдХреНрд╖рддрд╛ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рдореЙрдбреНрдпреВрд▓, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╕реВрдЪрдирд╛ рдкреНрд░рд╛рд░рдВрдн рд╕рдВрджреЗрд╢ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдЬреБрдбрд╝реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдмреЗрд╢рдХ, рдЗрдВрдлреЛ рдЧреНрд░реБрдк рдХреЛ рдЗрд╕рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рд╡рд╛рд░реНрди рд▓реЗрд╡рд▓ рддрдХ рд╕реАрдорд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд▓рдХрдбрд╝рд╣рд╛рд░реЗ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП


рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рд╣рдереМрдбрд╝реЗ рдХреА рддрд░рд╣ рд╕рд░рд▓ рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЙрд╕рдХреЗ рджрд╛рдпрд░реЗ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЕрдХреНрд╕рд░ рд░рдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрддрд╛ рд╣реИред рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди, рдпрд╣ рдЬреНрдпрд╛рджрд╛рддрд░ рдЙрдкрдпреЛрдЧреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдирд╣реАрдВред рдХрд╛рдлреА рдмрд╛рд░, рдореИрдВрдиреЗ рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ ( рдЙрджрд╛рд╣рд░рдг ) рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рдХреЛ рдиреЛрдЯрд┐рд╕ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рдпрд╛ рдмрд╛рдж рдореЗрдВ NLog рдмрдирд╛рдо log4net рдХреЛ рдЪреБрдирдиреЗ рдХреЗ рдХрд╖реНрдЯреЛрдВ рдХреЛ рд╕реНрдердЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдХ рдЖрд╡рд░рдг рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред

рдХрд╛рд░рдг рдЬреЛ рднреА рд╣реЛ, рд╣рдореЗрдВ рдпрд╣ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдкрд╣рд▓реА рдЬрдЧрд╣ рдореЗрдВ, рдРрд╕реА рд╕реБрд╡рд┐рдзрд╛рдПрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдЕрдиреБрдХреВрд▓рди рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдорд╛рд░ рджреЗрддреА рд╣реИрдВред

рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЗ рд╕рд╛рде рднреА, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕реАрдзреЗ рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдк рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдХреЗ рдЙрддреНрдкрд╛рджрди рдХреЛ рдмрдЪрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╢рд╛рдпрдж, рдпрд╣ рд╕рд┐рд░реНрдл рд╕реЛрдЪрдиреЗ рдФрд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред рд╢рд╛рдпрдж рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдХреЗрд╡рд▓ рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рджреВрд╕рд░реЗ рд╕реНрддрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдХреЗ рдКрдкрд░ рд░реИрдкрд░ рд╕рд┐рд░реНрдл рд╕рд╣реА рдЪреАрдЬ рд╣реЛрдЧреАред

рдореБрдЭреЗ NLog рд╕реЗ рдХреНрдпрд╛ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ?



NLog, Log4Net, рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ рд▓рд╛рдЗрдмреНрд░реЗрд░реА, рд╕реНрдорд╛рд░реНрдЯрдЗрдВрд╕реНрдкреЗрдХреНрдЯ ...


рдЖрдкрд╕ рдореЗрдВ рд▓рдХрдбрд╝рд╣рд╛рд░реЗ рдХреА рд╡рд┐рднрд┐рдиреНрди рддреБрд▓рдирд╛рдПрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╡рд░рдг рдХреЛ рдпрд╛рдж рдХрд░рддреА рд╣реИрдВред
рди рдХреЗрд╡рд▓ рд╕реАрдорд╛рдУрдВ / рдЕрд╡рд╕рд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдмрд▓реНрдХрд┐ рдЕрдкрдиреА рдЗрдЪреНрдЫрд╛ рд╕реВрдЪреА рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рднреА рд╣реИред

рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдЕрднреА рдХреЗ рд▓рд┐рдП NLog рдХреЗ рд╕рд╛рде рджреЛрд╕реНрдд рдмрдиреВрдВрдЧрд╛ред
рдореИрдВ рддреБрдореНрд╣реЗрдВ рдХреНрдпрд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБ?

Source: https://habr.com/ru/post/In135242/


All Articles