рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ
рд╣рдордиреЗ Pantheios рд▓реЙрдЧрд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рджреЗрдЦрд╛ред рдЕрдзрд┐рдХ рдкреНрд░рд╕рд┐рджреНрдз рдЕрдкрд╛рдЪреЗ log4cxx рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рд░реА рдЖрдИред рдкреБрд╕реНрддрдХрд╛рд▓рдп C ++ рдореЗрдВ log4j (рдЬрд╛рд╡рд╛ рд▓реЙрдЧрд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА) рд╕реЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдФрд░ рддрдВрддреНрд░реЛрдВ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ "рдореГрдд" рджрд┐рдЦрддреА рд╣реИ, рдкрд┐рдЫрд▓реЗ рд╡рд░реНрд╖ рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдХреЛрдИ рдХрдареЛрд░ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рджреЗрдЦрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рджреЗрдЦрдиреЗ (рдпрд╛ рд╢рд╛рдпрдж рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ) рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рдЯрд┐рдкреНрдкрдгреА
рдореИрдВ VisualStudio 2010 SP1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ Windows рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд╛рдг рдФрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд▓реЙрдЧреНрд╕, рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдореИрдВ рдХрдВрд╕реЛрд▓ рдФрд░ рдлрд╝рд╛рдЗрд▓ рджреЛрдиреЛрдВ рдкрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЬреЛрд░ рджреЗрдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ рдХрд┐ рд▓реЙрдЧ рдореЗрдВ рд░рд╛рд╖реНрдЯреНрд░реАрдп рдЕрдХреНрд╖рд░ (рдпреВрдирд┐рдХреЛрдб рдкрдврд╝реЗрдВ) рдХреЗ рд╕рд┐рдореЛрд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рд▓реЗрдЦ рд╢реБрд░реБрдЖрддреА рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдПрдХ рддреНрд╡рд░рд┐рдд рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рд╕рд╛рдордЧреНрд░реА рд╣реИ, рди рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЧрд╣рди рдЕрдзреНрдпрдпрдиред
рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реЛ рд░рд╣реА рд╣реИ
- рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ: http://log.apache.org/log4cxx/index.html
- рд▓рд╛рдЗрд╕реЗрдВрд╕: рдЕрдкрд╛рдЪреЗ рд▓рд╛рдЗрд╕реЗрдВрд╕, рд╕рдВрд╕реНрдХрд░рдг 2.0
- рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ: рдЕрдкрд╛рдЪреЗ рдкреЛрд░реНрдЯреЗрдмрд▓ рд░рдирдЯрд╛рдЗрдо (APR) ( http://apr.apache.org/ )
- рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛: sed (GNU рдпреВрдЯрд┐рд▓реНрд╕ рд╕реЗ)
рд╕рднрд╛
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд╕реНрд╡рдпрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрдЪреНрдЫреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕реЗ
рдПрд╕рд╡реАрдПрди рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕реЗ рдХрдорд┐рдЯреНрд╕ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдмрдЧреНрд╕ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдореИрдВрдиреЗ рдЬреЛрдЦрд┐рдо рдирд╣реАрдВ рд▓реЗрдиреЗ рдФрд░ рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг 0.10.0 рдХреЗ рд╕рд╛рде рдЕрдкрдиреА рдХрд┐рд╕реНрдордд рдЖрдЬрдорд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рддреЛ рдЪрд▓рд┐рдП!
рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд░рд╣рд╛ рд╣реИ:
: www.apache.org/dyn/closer.cgi/logging/log4cxx/0.10.0/apache-log4cxx-0.10.0.tar.gz
APR: apr.apache.org/download.cgi ( APR 1.4.2, APR-util 1.3.10 , APR iconv 1.2.1)
Sed: sourceforge.net/projects/gnuwin32/files//sed/4.2.1/sed-4.2.1-bin.zip/download
Sed:
sourceforge.net/projects/gnuwin32/files/libintl/0.14.4/libintl-0.14.4-bin.zip/download
sourceforge.net/projects/gnuwin32/files/libiconv/1.9.2-1/libiconv-1.9.2-1-bin.zip/download
sourceforge.net/projects/gnuwin32/files/regex/2.7/regex-2.7-bin.zip/download
Fuf, рд╕рдмрд╕реЗ рдореБрд╢реНрдХрд┐рд▓ рд╣рд┐рд╕реНрд╕рд╛ рдкреАрдЫреЗ рд╣реИ ...
рдирд┐рдХрд╛рд▓реЗрдВ:
- C: \ temp \ log4cxx_test \ apache-log4cxx-0.10.0 \
- C рдореЗрдВ APR: \ temp \ log4cxx_test \ apr \ (рд╕рдВрдЧреНрд░рд╣ рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдирд╛рдо рдмрджрд▓рдирд╛ рдордд рднреВрд▓рдирд╛)
- APR Util C: \ temp \ log4cxx_test \ apr-use \ (рд╕рдВрдЧреНрд░рд╣ рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдирд╛рдо рдмрджрд▓рдирд╛ рдордд рднреВрд▓рдирд╛)
- C рдореЗрдВ APR: \ temp \ log4cxx_test \ apr-use \ (рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рдирд╛рдо рдмрджрд▓рдирд╛ рди рднреВрд▓реЗрдВ)
рдореБрдЭреЗ рдорд╢реАрди рдкрд░ рдЗрд╕ рддрд░рд╣ рд╕реЗ sed рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЗрд╕реЗ рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдореБрдЭреЗ рдЗрд╕реЗ рдпрд╣рд╛рдВ рдЫреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛: C: \ temp \ log4cxx \ Apache-log4cxx-0.10.0 \ рдФрд░ рд╕рднреА dll рдлрд╛рдЗрд▓реЗрдВ рдбрд╛рд▓реЗрдВ, рдЬрд┐рд╕ рдкрд░ рдпрд╣ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЙрдиреНрд╣реЗрдВ sed рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ, рддреЛ Aesthetes, sed рдФрд░ dll рджреЛрдиреЛрдВ рдХреЛ% SystemRoot% \ System32 \ рдореЗрдВ рдлреЗрдВрдХ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдЧрд▓рд╛: рдХрдорд╛рдВрдб рд▓рд╛рдЗрди VS2010 рдЪрд▓рд╛рдПрдВ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ C: \ temp \ log4cxx \ Apache-log4cxx-0.10.0 \ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рдЕрдиреБрдХреНрд░рдо рдореЗрдВ рдХрд░реЗрдВ:
>configure
>configure-aprutil
рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рдпрд╣ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреА рдмрд╛рд░реА рдереАред рдпрд╣рд╛рдБ рдпрд╣ рд╕реНрдЯреВрдбрд┐рдпреЛ (devenv) рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ c: \ temp \ log4cxx \ Apache-log4cxx-0.10.0 \ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ \ log4cxx.dsw рдХреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред рд╕реНрдЯреВрдбрд┐рдпреЛ рдЖрдкрдХреЛ рдЙрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдЧрд╛, рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдПред
рд╣рдо рдмрд┐рд▓реНрдб рджрдмрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдЪрд╛рдп рдкреАрдиреЗ рдирд╣реАрдВ рдЬрд╛рддреЗ рд╣реИрдВред рдЕрд╕реЗрдВрдмрд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ ~ 300 рдореАрд▓ рдХреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЬрд▓реНрджреА рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧреАред рдпрд╣ LOG4CXX_LIST_DEF рдореИрдХреНрд░реЛ рдкрд░ рд╢рдкрде рд▓реЗрдЧрд╛ред рдРрд╕реЗ рд╕рднреА рдореИрдХреНрд░реЛ рдХреЛ рдХрдХреНрд╖рд╛ рдХреЗ рд╕рд╛рдордиреЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рд╡реЗ рдХрдХреНрд╖рд╛ рдХреЗ рдЕрдВрджрд░ рдШреЛрд╖рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ)ред
рдЗрди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЕрдЬреНрдЮрд╛рдд std :: insert_iterator рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рддреНрд░реБрдЯрд┐рдпрд╛рдБ рд╣реЛрдВрдЧреА - рдмрд╕ рдлрд╝рд╛рдЗрд▓ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ #include <iterator> рдЬреЛрдбрд╝реЗрдВред
рдЗрд╕рдХреЗ рдмрд╛рдж, KeySet рдЕрдирд┐рд╢реНрдЪрд┐рддрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдБ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреА - рдРрд╕реА рд╕рднреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг):
LoggingEvent::KeySet set;
KeySet set;
(рдЪреВрдВрдХрд┐ рд╣рдордиреЗ рдПрдХ рдореИрдХреНрд░реЛ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рд╣реИ рдЬреЛ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдмрд╛рд╣рд░ рдЗрди рд╕рдорд╛рди рдХреАрд╕реЗрдЯреНрд╕ рдмрдирд╛рддрд╛ рд╣реИ)ред
рдЗрд╕ "shamanism" рдХреЗ рдмрд╛рдж рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╕рдлрд▓ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЕрдирд┐рд╢реНрдЪрд┐рддрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рд▓рд┐рдВрдХ "рд╡рд┐рдлрд▓" рд╣реЛрдЧрд╛ред рдмрд╕ рдпрд╣ рдХрд┐ рд░реВрдкрд╛рдВрддрд░рдг рдХрд░рддреЗ рд╕рдордп, рд╕реНрдЯреВрдбрд┐рдпреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдВрдХ рдмрдирд╛рдирд╛ рднреВрд▓ рдЧрдпрд╛ред
рдЙрдиреНрд╣реЗрдВ рдмрд╕ log4cxx рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдЧреБрдгреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдореИрдВ рдкреВрд░реНрдг рд╕рд░рд▓рддрд╛ рдХреЗ рд▓рд┐рдП рдкрдереЛрдВ рдХреЛ рд╣рд╛рд░реНрдбрдХреЛрдб рдХрд░рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреА рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ):


рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд▓рд┐рдВрдХ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
log4cxx рдПрдкреЗрдВрдбрд░реНрд╕, рд▓реЗрдЖрдЙрдЯреНрд╕ рдФрд░ рдЯрд╛рд░рдЧреЗрдЯ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдкрд░рд┐рд╢рд┐рд╖реНрдЯ - рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ (рд▓рдХреНрд╖реНрдп) рд╕рдВрджреЗрд╢ рдкреНрд░рд╡рд╛рд╣ (рд╕рд╛рд░ рдореЗрдВ рд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рд▓реЙрдЧ) рдХреЗ рд▓рд┐рдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд▓реЗрдЖрдЙрдЯ рдХрд╛ рдПрдХ рд▓рд┐рдВрдХ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рд╕рдВрджреЗрд╢ рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдкрдврд╝реЗрдВред
рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдп
рдореИрдВ рдкрд░реНрдпрд╛рд╡рд░рдг рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рдЗрд╕реА рддрд░рд╣ рдХреА рдореМрд▓рд┐рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЦреАрдВрдЪрдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ (рд▓реЗрдХрд┐рди рдЬрдм рд╕реЗ рдореИрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ)ред рдЗрд╕рд▓рд┐рдП, рдХрдорд╛рдВрдб рд▓рд╛рдЗрди VS2010 рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ:
>SET LOG4CXX=C:\temp\log4cxx\apache-log4cxx-0.10.0\src\main\include\
>SET LOG4CXXLIB=C:\temp\log4cxx\apache-log4cxx-0.10.0\projects\Debug\
>devnenv
(рдореИрдВрдиреЗ рдбрд┐рдмрдЧ рдореЛрдб рдореЗрдВ рдПрдХрддреНрд░ рдХрд┐рдпрд╛, рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рд░рд╛рд╕реНрддреЗ рдереЛрдбрд╝реЗ рдЕрд▓рдЧ рд╣реИрдВ)ред
рдЕрдЧрд▓рд╛, рдПрдХ рд╕рд╛рдзрд╛рд░рдг C ++ рдХрдВрд╕реЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ - рдпрд╣ рд╣рдорд╛рд░реА рдкрд░реАрдХреНрд╖рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реЛрдЧреАред
рдЗрд╕рдореЗрдВ, рд╣рдо рдЕрдкрдиреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗрдЯрдЕрдк рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╢рд╛рдорд┐рд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВ:

рдФрд░ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП:


рдЗрд╕рдореЗрдВ рд╣рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдмрд╛рд░реА рд╣реИ:
рдЕрдм рдЖрдкрдХреЛ рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдмрдирд╛рдпрд╛ рд╣реИ:
<?xml version="1.0" encoding="UTF-8" ?> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" > <appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender"> <param name="Target" value="System.out"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{ABSOLUTE} [%t] %level %c{2}#%M %F:%L - %m%n"/> </layout> </appender> <appender name="DailyRollingFileAppender" class="org.apache.log4j.rolling.DailyRollingFileAppender"> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{ABSOLUTE} [%t] %level %c{2}#%M %F:%L - %m%n"/> </layout> <param name="Encoding" value="UTF-16" /> <param name="file" value="logfile.log"/> <param name="DatePattern" value="'.'yyyy-MM-dd" /> <param name="append" value="true"/> </appender> <root> <priority value="all" /> <appender-ref ref="DailyRollingFileAppender"/> <appender-ref ref="ConsoleAppender"/> </root> </log4j:configuration>
рдЖрдк log4j рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рд░реВрдк "рд▓рдЧрднрдЧ рдореИрдЪред"
рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдФрд░ рдиреАрдЪреЗ рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдпрдХреНрд░рдо:
void foo(void*) { log4cxx::LoggerPtr logger = log4cxx::Logger::getRootLogger(); for(int i=0;i<10;++i){ LOG4CXX_DEBUG((logger), L"debug" << L"other debug message"); LOG4CXX_TRACE((logger), L"trace"); LOG4CXX_INFO((logger), L", !"); LOG4CXX_WARN((logger), L"WARN"); LOG4CXX_ERROR((logger), L"error"); LOG4CXX_FATAL((logger), L"FATAL"); } } int _tmain(int argc, _TCHAR* argv[]) { setlocale(LC_ALL, "Russian_Russia.OCP");
рдореИрдВ рдЙрдкрдпреЛрдЧ рдХреА "рдЪрд╛рд▓" рдкрд░ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ:
LOG4CXX_DEBUG((logger), L"debug" << L"other debug message");
"рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ" рдЪрдХреНрд░ рд╕реЗред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдореИрдХреНрд░реЛ рдХрд╛ рджреВрд╕рд░рд╛ рддрд░реНрдХ рд╕реНрдЯреНрд░реАрдо рдЗрдирдкреБрдЯ рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЖрдк рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпрд╣рд╛рдВ рдХрдИ рд╕рдВрджреЗрд╢ (рдХреЗрд╡рд▓ рдкрд╛рда рдирд╣реАрдВ) рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдирд┐рд╖реНрдХрд░реНрд╖
рд╣рдордиреЗ рд╕рд╛рдзрд╛рд░рдг рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ log4cxx рдХреЗ рдЕрд╕реЗрдВрдмрд▓реА рдФрд░ рдмреЗрд╕рд┐рдХ рд╕реЗрдЯрдЕрдк рдХреЛ рджреЗрдЦрд╛ред
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдлрд╛рдпрджреЛрдВ рдХреЗ рдмреАрдЪ, рдпрд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╕реНрдЯрдорд┐рдЬрд╝реЗрдмрд┐рд▓рд┐рдЯреА рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ, рдмреЙрдХреНрд╕ рдХреЗ рдмрд╛рд╣рд░ рдпреВрдирд┐рдХреЛрдб рд╕рдорд░реНрдерди (рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╕рд╣рд┐рдд)ред
рдордВрддреНрд░рд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ, рдпрд╣ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреА рд╕рд╛рдкреЗрдХреНрд╖ рдЬрдЯрд┐рд▓рддрд╛ рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рд╡реЗ рдпрд╣ рднреА рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрд╣ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЗрддрдиреА рддреЗрдЬреА рд╕реЗ рдирд╣реАрдВред
рдЗрд╕ рд╡рд┐рд╖рдп рдХреЗ рдмрд╛рд╣рд░ рд░рд╣рддрд╛ рд╣реИ: рдЙрдиреНрдирдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди, рдЕрдиреНрдп рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, "рд▓реАрдХ рдХреЗ рдорд┐рдердХ" рдХрд╛ рд╕рддреНрдпрд╛рдкрдиред
рдПрдХ рдЕрдЪреНрдЫрд╛ рдкреНрд░рд╡реЗрд╢ рдХрд░реЗрдВ!