{"id":1669,"date":"2024-05-08T17:31:42","date_gmt":"2024-05-08T09:31:42","guid":{"rendered":"http:\/\/oneai.eu.org\/?p=1669"},"modified":"2024-05-08T17:31:42","modified_gmt":"2024-05-08T09:31:42","slug":"tomcat%e6%97%a5%e5%bf%97%e7%ba%a7%e5%88%ab%e8%b0%83%e6%95%b4","status":"publish","type":"post","link":"https:\/\/oneai.eu.org\/?p=1669","title":{"rendered":"tomcat\u65e5\u5fd7\u7ea7\u522b\u8c03\u6574"},"content":{"rendered":"<p>Tomcat\u65e5\u5fd7\u8bbe\u5b9a<br \/>\n\u6807\u7b7e\uff1a tomcatlog4jpropertiesaccessmanagerclass<br \/>\n2009-09-17 09:22 84068\u4eba\u9605\u8bfb \u8bc4\u8bba(5) \u6536\u85cf \u4e3e\u62a5<br \/>\n\u5206\u7c7b\uff1a  Tomcat\uff083\uff09<br \/>\n\u7248\u6743\u58f0\u660e\uff1a\u672c\u6587\u4e3a\u535a\u4e3b\u539f\u521b\u6587\u7ae0\uff0c\u672a\u7ecf\u535a\u4e3b\u5141\u8bb8\u4e0d\u5f97\u8f6c\u8f7d\u3002<\/p>\n<p>1    Tomcat \u65e5\u5fd7\u6982\u8ff0<\/p>\n<p>Tomcat \u65e5\u5fd7\u4fe1\u606f\u5206 \u4e3a \u4e24 \u7c7b \uff1a<\/p>\n<p>\u4e00\u662f\u8fd0\u884c\u4e2d\u7684\u65e5\u5fd7\uff0c\u5b83\u4e3b\u8981 \u8bb0\u5f55 \u8fd0\u884c\u7684\u4e00\u4e9b\u4fe1\u606f\uff0c\u5c24\u5176\u662f\u4e00\u4e9b\u5f02\u5e38 \u9519\u8bef \u65e5\u5fd7\u4fe1\u606f \u3002<br \/>\n\u4e8c\u662f \u8bbf\u95ee \u65e5\u5fd7\u4fe1\u606f\uff0c\u5b83 \u8bb0\u5f55 \u7684 \u8bbf\u95ee \u7684 \u65f6\u95f4 \uff0c IP \uff0c \u8bbf\u95ee \u7684 \u8d44 \u6599\u7b49\u76f8 \u5173 \u4fe1\u606f\u3002<\/p>\n<p>2    Tomcat \u65e5\u5fd7\u914d\u7f6e<br \/>\n2.1  \u8bbf\u95ee\u65e5\u5fd7\u7684\u914d\u7f6e<\/p>\n<p>\u9ed8\u8ba4 tomcat \u4e0d\u8bb0\u5f55\u8bbf\u95ee\u65e5\u5fd7\uff0c\u5982\u4e0b\u65b9\u6cd5\u53ef\u4ee5\u4f7f tomcat \u8bb0\u5f55\u8bbf\u95ee\u65e5\u5fd7<\/p>\n<p>\u7f16\u8f91 ${catalina}\/conf\/server.xml \u6587\u4ef6 . \u6ce8 :${catalina} \u662f tomcat \u7684\u5b89\u88c5\u76ee\u5f55<\/p>\n<p>\u628a\u4ee5\u4e0b\u7684\u6ce8\u91ca (<!-- -->) \u53bb\u6389\u5373\u53ef\u3002<\/p>\n<p> <!--\n        <Valve className=\"org.apache.catalina.valves.AccessLogValve\"\n         directory=\"logs\"  prefix=\"localhost_access_log.\" suffix=\".txt\"\n         pattern=\"common\" resolveHosts=\"false\"\/>\n  --><\/p>\n<p>2.2  \u914d\u7f6e tomcat \u5199\u51fa\u66f4\u8be6\u7ec6\u7684\u65e5\u5fd7<\/p>\n<p>\u901a\u8fc7\u5bf9 2.1 \u793a\u4f8b\u4e2d pattern \u9879\u7684\u4fee\u6539\uff0c\u53ef\u4ee5\u6539\u53d8\u65e5\u5fd7\u8f93\u51fa\u7684\u5185\u5bb9\u3002<\/p>\n<p>\u8be5\u9879\u503c\u53ef\u4ee5\u4e3a\uff1a common \u4e0e combined \uff0c\u8fd9\u4e24\u4e2a \u9884 \u5148 \u8bbe \u7f6e\u597d\u7684 \u683c\u5f0f\u5bf9\u5e94\u7684\u65e5\u5fd7\u8f93\u51fa\u5185\u5bb9\u5982\u4e0b\uff1a<\/p>\n<p>common \u7684\u503c\uff1a %h %l %u %t %r %s %b<br \/>\ncombined \u7684\u503c\uff1a %h %l %u %t %r %s %b %{Referer}i %{User-Agent}i<\/p>\n<p>pattern \u4e5f\u53ef\u4ee5\u6839\u636e\u9700\u8981\u81ea\u7531 \u7ec4 \u5408 , \u4f8b\u5982 pattern=&quot;%h %l&quot;<\/p>\n<p>\u5bf9 \u4e8e\u5404 fields \u5b57\u6bb5\u7684\u542b \u4e49\u8bf7 \u53c2\u7167 :<\/p>\n<p><a href=\"http:\/\/tomcat.apache.org\/tomcat-6.0-doc\/config\/valve.html\">http:\/\/tomcat.apache.org\/tomcat-6.0-doc\/config\/valve.html<\/a> \u4e2d\u7684 Access Log Valve \u9879<br \/>\n3    \u4fee\u6539 Tomcat \u8fd0\u884c\u65e5\u5fd7\u7684\u7b49\u7ea7<br \/>\n3.1  \u65e5\u5fd7\u7c7b\u578b\u4e0e\u7ea7\u522b<\/p>\n<p>Tomcat \u65e5\u5fd7\u5206\u4e3a\u4e0b\u9762\uff15\u7c7b\uff1a<\/p>\n<p>catalina \u3001 localhost \u3001 manager \u3001 admin \u3001 host-manager<\/p>\n<p>\u6bcf\u7c7b\u65e5\u5fd7\u7684\u7ea7\u522b\u5206\u4e3a\u5982\u4e0b 7 \u79cd\uff1a<\/p>\n<p>ALL&gt;SEVERE (highest value) &gt; WARNING &gt; INFO &gt; CONFIG &gt; FINE &gt; FINER &gt; FINEST (lowest value)<br \/>\n3.2  \u65e5\u5fd7\u7ea7\u522b\u7684\u8bbe\u5b9a\u65b9\u6cd5<\/p>\n<p>\u4fee\u6539 conf\/logging.properties \u4e2d\u7684\u5185\u5bb9\uff0c\u8bbe\u5b9a\u67d0\u7c7b\u65e5\u5fd7\u7684\u7ea7\u522b<\/p>\n<p>\u793a\u4f8b\uff1a<\/p>\n<p>\u8bbe\u7f6e catalina \u65e5\u5fd7\u7684\u7ea7\u522b\u4e3a\uff1a FINE<\/p>\n<p>1catalina.org.apache.juli.FileHandler.level = FINE<\/p>\n<p>\u7981\u7528 catalina \u65e5\u5fd7\u7684\u8f93\u51fa\uff1a<\/p>\n<p>1catalina.org.apache.juli.FileHandler.level = OFF<\/p>\n<p>\u8f93\u51fa catalina \u6240\u6709\u7684\u65e5\u5fd7\u6d88\u606f\u5747\u8f93\u51fa\uff1a<\/p>\n<p>1catalina.org.apache.juli.FileHandler.level = ALL<br \/>\n4    \u4f7f\u7528 log4j \u8bb0\u5f55\u5e94\u7528\u7a0b\u5e8f\u65e5\u5fd7\u6216 \u7cfb \u7edf \u65e5\u5fd7<br \/>\n4.1  \u4f7f\u7528 Log4j \u8f93 \u51fa \u8be6\u7ec6 \u7cfb \u7edf \u65e5\u5fd7\u4fe1\u606f\uff0c\u5feb\u901f \u8bca \u65ad\u542f \u52a8 \u6545\u969c<\/p>\n<p>\u6b64\u4f8b\u53ef\u5f25 \u8865 tomcat \u542f \u52a8 \u5f02\u5e38 \u65f6\u8f93 \u51fa\u7684 \u9519\u8bef \u4fe1\u606f\u4e0d\u8db3\u7684 \u95ee\u9898 \uff0c\u4f7f\u7528 commons-logging \u548c log4j \u642d\u914d \u8f93 \u51fa \u8be6 \u5c3d\u7684\u65e5\u5fd7\u4fe1 \u606f \u3002<\/p>\n<p>\u4ee5 window \u73af\u5883\u4e0b tomcat5.5.27 \u4e3a\u4f8b\uff1a<\/p>\n<p>1\u3001 tomcat \u89e3\u538b\u76ee\u5f55\u4e3a\uff1a<\/p>\n<p>E: \/tomcat5.5<\/p>\n<p>2\u3001 \u8bbe\u7f6e\u73af\u5883\u53d8\u91cf\uff1a<\/p>\n<p>CATALINA_HOME=E: \/tomcat5.5<\/p>\n<p>3\u3001 \u4e0b\u8f7d log4j \u4e0e commons-logging<\/p>\n<p>Log4j \u4e0b\u8f7d\u5730\u5740\uff1a<\/p>\n<p><a href=\"http:\/\/logging.apache.org\/log4j\/1.2\/download.html\">http:\/\/logging.apache.org\/log4j\/1.2\/download.html<\/a><\/p>\n<p>Commons-logging \u4e0b\u8f7d\u5730\u5740\uff1a<\/p>\n<p><a href=\"http:\/\/apache.freelamp.com\/commons\/logging\/binaries\/commons-logging-1.1.1-bin.zip\">http:\/\/apache.freelamp.com\/commons\/logging\/binaries\/commons-logging-1.1.1-bin.zip<\/a><\/p>\n<p>4\u3001 \u672c\u4f8b\u5c06 commons-logging-1.1.1.jar \u4e0e log4j-1.2.15.jar \u653e\u5728 %TOMCAT_HOME%\/bin \u76ee\u5f55\u4e0b\uff08\u53ef\u6839\u636e\u9700\u8981\u653e\u7f6e\u5728\u5176\u4f4d\u7f6e\uff09<\/p>\n<p>5\u3001 \u5728 %TOMCAT_HOME%\/bin \u76ee\u5f55\u4e0b\u65b0\u5efa\u4e24\u4e2a\u6587\u4ef6 commons-logging.properties \u3001 log4j.properties<\/p>\n<p>commons-logging.properties \u6587\u4ef6\u5185\u5bb9\u5982\u4e0b\uff1a<\/p>\n<p>org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger<\/p>\n<p>log4j.properties \u6587\u4ef6\u5185\u5bb9\u5982\u4e0b\uff1a<\/p>\n<p>log4j.rootLogger=WARN,stdout,file<\/p>\n<h2>\u65e5\u5fd7\u76f4\u63a5\u8f93\u51fa\u5230\u63a7\u5236\u53f0<\/h2>\n<p>log4j.appender.stdout=org.apache.log4j.ConsoleAppender<\/p>\n<p>log4j.appender.stdout.Target=System.out<\/p>\n<p>log4j.appender.stdout.layout=org.apache.log4j.PatternLayout<\/p>\n<p>log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %l - %m%n<\/p>\n<h2>\u65e5\u5fd7\u8f93\u51fa\u5230\u6587\u4ef6 SystemOut.log<\/h2>\n<p>log4j.appender.file=org.apache.log4j.FileAppender<\/p>\n<p>log4j.appender.file.File=E: \/tomcat5.5\/ logs\/SystemOut.log<\/p>\n<p>log4j.appender.file.Append=false<\/p>\n<p>log4j.appender.file.layout=org.apache.log4j.PatternLayout<\/p>\n<p>log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %l - %m%n<\/p>\n<p>\u8be5\u914d\u7f6e\u6587\u4ef6\u53ef\u8be6\u7ec6\u53c2\u7167\uff1a<\/p>\n<p><a href=\"http:\/\/www.minaret.biz\/tips\/tomcatLogging.html#log4j_properties\">http:\/\/www.minaret.biz\/tips\/tomcatLogging.html#log4j_properties<\/a><\/p>\n<p>6\u3001 \u4fee\u6539 catalina.bat \u6587\u4ef6<\/p>\n<p>\u5c06<\/p>\n<p>set CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\/bin\/bootstrap.jar<\/p>\n<p>\u66ff \u6362\u4e3a<\/p>\n<p>set CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\/bin\/bootstrap.jar;%CATALINA_HOME%\/bin\/commons-logging-1.1.jar;%CATALINA_HOME%\/bin\/log4j-1.2.13.jar;%CATALINA_HOME%\/bin<\/p>\n<p>7\u3001 \u901a \u8fc7 startup.bat \u542f \u52a8 \u5c31\u4f1a\u7528 log4j \u6765 \u8f93 \u51fa\u542f \u52a8 \u65e5\u5fd7\u4e86 \u3002<\/p>\n<p>8\u3001 \u5728 E: \/tomcat5.5\/ logs\/SystemOut.log \u6587\u4ef6\u4e2d \u67e5 \u770b \u8f93 \u51fa\u7684\u65e5\u5fd7<br \/>\n4.2  \u5e94 \u7528\u7a0b\u5e8f\u4e2d \u4f7f\u7528 log4j \u4f7f\u7528\u65b9\u6cd5<\/p>\n<p>1\u3001 \u4ece\u5982\u4e0b\u7f51\u5740\u4e0b \u8f7d log4j \uff1a<\/p>\n<p><a href=\"http:\/\/logging.apache.org\/log4j\/1.2\/download.html\">http:\/\/logging.apache.org\/log4j\/1.2\/download.html<\/a><\/p>\n<p>2\u3001 \u521b \u5efa Java \u5de5\u7a0b\u3002<\/p>\n<p>3\u3001 \u6dfb\u52a0 log4j.jar \u5230\u5de5\u7a0b\u7684 \u7f16\u8bd1 \u8def\u5f84\u4e0b \u3002<\/p>\n<p>4\u3001 \u521b \u5efa\u540d\u79f0 \u4e3a log4j.properties \u7684\u6587\u4ef6\uff0c\u5199\u5165\u5982\u4e0b\u5185\u5bb9\uff1a<\/p>\n<h3>direct log messages to stdout<\/h3>\n<p>log4j.appender.stdout=org.apache.log4j.ConsoleAppender<\/p>\n<p>log4j.appender.stdout.Target=System.out<\/p>\n<p>log4j.appender.stdout.layout=org.apache.log4j.PatternLayout<\/p>\n<p>log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n<\/p>\n<p>log4j.rootLogger=debug, stdout<\/p>\n<p>5\u3001 \u521b \u5efa \u7c7b \u5e76\u6dfb\u52a0\u5982\u4e0b\u5185\u5bb9\uff1a<\/p>\n<p>import org.apache.log4j.Logger;<\/p>\n<p>public class LogClass {<\/p>\n<pre><code>    private static org.apache.log4j.Logger log = Logger\n\n                    .getLogger (LogClass. class );\n\n    public static void main(String[] args) {\n\n            log .trace( \"Trace\" );\n\n            log .debug( \"Debug\" );\n\n            log .info( \"Info\" );\n\n            log .warn( \"Warn\" );\n\n            log .error( \"Error\" );\n\n            log .fatal( \"Fatal\" );\n\n    }<\/code><\/pre>\n<p>}<\/p>\n<p>6\u3001 \u7f16\u8bd1 \u8fd0\u884c\uff0c\u53ef\u5728\u63a7\u5236\u53f0\u4e2d\u770b\u5230\u5982\u4e0b\u5185\u5bb9 \uff1a<\/p>\n<p>10:38:24,797 DEBUG LogClass:11 - Debug<\/p>\n<p>10:38:24,812  INFO LogClass:12 - Info<\/p>\n<p>10:38:24,812  WARN LogClass:13 - Warn<\/p>\n<p>10:38:24,812 ERROR LogClass:14 - Error<\/p>\n<p>10:38:24,812 FATAL LogClass:15 - Fatal<\/p>\n<p>7\u3001 \u6839\u636e \u7ea7\u522b \u63a7\u5236\u65e5\u5fd7 \u8f93 \u51fa\u5185\u5bb9\uff1a<\/p>\n<p>\u5c06 log4j.rootLogger= debug , stdout \u53d8 \u66f4 \u4e3a log4j.rootLogger=Warn, stdout<\/p>\n<p>\u8f93 \u51fa\u5185\u5bb9\u5982\u4e0b\uff1a<\/p>\n<p>10:41:15,488  WARN LogClass:13 - Warn<\/p>\n<p>10:41:15,504 ERROR LogClass:14 - Error<\/p>\n<p>10:41:15,504 FATAL LogClass:15 \u2013 Fatal<br \/>\n4.3  \u914d\u7f6e log4j.properties \u66f4\u6539\u65e5\u5fd7 \u8f93 \u51fa\u5185\u5bb9<\/p>\n<p>1 \u3001 log4j.rootCategory=INFO, stdout , R<\/p>\n<p>\u6b64\u53e5 \u4e3a \u5c06\u7b49 \u7ea7\u4e3a INFO \u7684\u65e5\u5fd7\u4fe1\u606f \u8f93 \u51fa\u5230 stdout \u548c R \u8fd9 \u4e24\u4e2a\u76ee\u7684\u5730\u3002\u7b49 \u7ea7 \u53ef\u5206 \u4e3a OFF \u3001 FATAL \u3001 ERROR \u3001 WARN \u3001 INFO \u3001 DEBUG \u3001 ALL \uff0c\u5982\u679c\u914d\u7f6e OFF \u5219 \u4e0d\u6253\u51fa\u4efb\u4f55\u4fe1\u606f\uff0c\u5982\u679c\u914d\u7f6e \u4e3a INFO \u8fd9\u6837 \u53ea \u663e \u793a INFO, WARN, ERROR \u7684 log \u4fe1\u606f\uff0c\u800c DEBUG \u4fe1\u606f\u4e0d\u4f1a\u88ab \u663e \u793a\u3002<\/p>\n<p>2 \u3001 log4j.appender.stdout=org.apache.log4j.ConsoleAppender<\/p>\n<p>\u6b64\u53e5 \u4e3a \u5b9a \u4e49 \u540d \u4e3a stdout \u7684 \u8f93 \u51fa\u7aef\u662f\u54ea \u79cd\u7c7b \u578b\uff0c\u53ef\u4ee5\u662f<\/p>\n<p>\u00d8  org.apache.log4j.ConsoleAppender \uff08\u63a7\u5236\u53f0\uff09\uff0c<\/p>\n<p>\u00d8  org.apache.log4j.FileAppender \uff08\u6587\u4ef6\uff09\uff0c<\/p>\n<p>\u00d8  org.apache.log4j.DailyRollingFileAppender \uff08 \u6bcf \u5929 \u4ea7 \u751f\u4e00\u4e2a\u65e5\u5fd7\u6587\u4ef6\uff09\uff0c<\/p>\n<p>\u00d8  org.apache.log4j.RollingFileAppender \uff08\u6587\u4ef6\u5927\u5c0f\u5230\u8fbe\u6307\u5b9a\u5c3a\u5bf8\u7684 \u65f6 \u5019 \u4ea7 \u751f\u4e00\u4e2a\u65b0\u7684\u6587\u4ef6\uff09<\/p>\n<p>\u00d8  org.apache.log4j.WriterAppender \uff08\u5c06\u65e5\u5fd7\u4fe1\u606f\u4ee5\u6d41\u683c\u5f0f \u53d1 \u9001\u5230\u4efb\u610f\u6307\u5b9a\u7684\u5730\u65b9 \uff09<\/p>\n<p>3 \u3001 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout<\/p>\n<p>\u6b64\u53e5 \u4e3a \u5b9a \u4e49 \u540d \u4e3a stdout \u7684 \u8f93 \u51fa\u7aef\u7684 layout \u662f\u54ea \u79cd\u7c7b \u578b<\/p>\n<p>\u00d8  org.apache.log4j.HTMLLayout \uff08\u4ee5HTML \u8868\u683c\u5f62\u5f0f\u5e03\u5c40\uff09\uff0c<\/p>\n<p>\u00d8  org.apache.log4j.PatternLayout \uff08\u53ef\u4ee5\u7075\u6d3b\u5730\u6307\u5b9a\u5e03\u5c40\u6a21\u5f0f\uff09\uff0c<\/p>\n<p>\u00d8  org.apache.log4j.SimpleLayout \uff08\u5305\u542b\u65e5\u5fd7\u4fe1\u606f\u7684 \u7ea7\u522b \u548c\u4fe1\u606f\u5b57\u7b26\u4e32\uff09\uff0c<\/p>\n<p>\u00d8  org.apache.log4j.TTCCLayout \uff08\u5305\u542b\u65e5\u5fd7 \u4ea7 \u751f\u7684 \u65f6\u95f4 \u3001 \u7ebf \u7a0b\u3001 \u7c7b\u522b \u7b49\u7b49\u4fe1\u606f \uff09<\/p>\n<p>4 \u3001 log4j.appender.stdout.layout.ConversionPattern= [QC] %p [%t] %C.%M(%L) | %m%n<\/p>\n<p>\u5982\u679c\u4f7f\u7528 pattern \u5e03\u5c40\u5c31\u8981\u6307\u5b9a\u7684\u6253\u5370\u4fe1\u606f\u7684\u5177\u4f53\u683c\u5f0f ConversionPattern \uff0c\u6253\u5370\u53c2\u6570\u5982\u4e0b\uff1a<\/p>\n<p>\u5177\u4f53\u7684\u8bbe\u5b9a\u53c2\u7167\uff1a<\/p>\n<p><a href=\"http:\/\/logging.apache.org\/log4j\/1.2\/apidocs\/org\/apache\/log4j\/PatternLayout.html\">http:\/\/logging.apache.org\/log4j\/1.2\/apidocs\/org\/apache\/log4j\/PatternLayout.html<\/a><\/p>\n<p>\u00d8  %m \u8f93 \u51fa\u4ee3 \u7801 \u4e2d\u6307\u5b9a\u7684\u6d88\u606f<\/p>\n<p>\u00d8  %p \u8f93 \u51fa \u4f18 \u5148 \u7ea7 \uff0c\u5373 DEBUG \uff0c INFO \uff0c WARN \uff0c ERROR \uff0c FATAL<\/p>\n<p>\u00d8  %r \u8f93 \u51fa\u81ea \u5e94 \u7528\u542f \u52a8 \u5230 \u8f93 \u51fa \u8be5 log \u4fe1\u606f\u8017 \u8d39 \u7684\u6beb\u79d2\u6570<\/p>\n<p>\u00d8  %c \u8f93 \u51fa\u6240\u5c5e\u7684 \u7c7b \u76ee\uff0c\u901a\u5e38\u5c31\u662f\u6240\u5728 \u7c7b \u7684\u5168\u540d<\/p>\n<p>\u00d8  %t \u8f93 \u51fa \u4ea7 \u751f \u8be5 \u65e5\u5fd7\u4e8b\u4ef6\u7684 \u7ebf \u7a0b\u540d<\/p>\n<p>\u00d8  %n \u8f93 \u51fa\u4e00\u4e2a\u56de \u8f66\u6362 \u884c\u7b26\uff0c Windows \u5e73\u53f0 \u4e3a \u201crn\u201d \uff0c Unix \u5e73\u53f0 \u4e3a \u201cn\u201d<\/p>\n<p>\u00d8  %d \u8f93 \u51fa\u65e5\u5fd7 \u65f6\u95f4 \u70b9\u7684\u65e5\u671f\u6216 \u65f6\u95f4 \uff0c\u9ed8 \u8ba4 \u683c\u5f0f \u4e3a ISO8601 \uff0c\u4e5f\u53ef\u4ee5\u5728\u5176\u540e\u6307\u5b9a\u683c\u5f0f\uff0c\u6bd4\u5982\uff1a %d{yyyy mm dd HH:mm:ss,SSS} \uff0c \u8f93 \u51fa \u7c7b \u4f3c\uff1a 2002 \u5e74 10 \u6708 18 \u65e5 22 \uff1a 10 \uff1a 28 \uff0c 921<\/p>\n<p>\u00d8  %l \u8f93 \u51fa\u65e5\u5fd7\u4e8b\u4ef6\u7684 \u53d1 \u751f\u4f4d\u7f6e\uff0c\u5305\u62ec \u7c7b \u76ee\u540d\u3001 \u53d1 \u751f\u7684 \u7ebf \u7a0b\uff0c\u4ee5\u53ca\u5728\u4ee3 \u7801 \u4e2d\u7684\u884c\u6570\u3002<\/p>\n<p>\u00d8  [QC] \u662f log \u4fe1\u606f\u7684 \u5f00\u5934 \uff0c\u53ef\u4ee5 \u4e3a \u4efb\u610f \u5b57\u7b26\uff0c\u4e00\u822c \u4e3a\u9879 \u76ee \u7b80 \u79f0 \u3002<br \/>\n5       Log4j \u76f8 \u5173\u8d44 \u6599<\/p>\n<p>\u4ee5\u4e0b\u7f51\u5740\u63d0\u4f9b\u4e86 log4j \u7684\u4ecb \u7ecd \uff1a<\/p>\n<p><a href=\"http:\/\/logging.apache.org\/log4j\/1.2\/manual.html\">http:\/\/logging.apache.org\/log4j\/1.2\/manual.html<\/a><\/p>\n<p>\u4ee5\u4e0b\u7f51\u5740\u63d0\u4f9b\u7684 log4j \u7684\u4f7f\u7528\u793a\u4f8b\uff1a<\/p>\n<p><a href=\"http:\/\/www.laliluna.de\/log4j-tutorial.html\">http:\/\/www.laliluna.de\/log4j-tutorial.html<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tomcat\u65e5\u5fd7\u8bbe\u5b9a \u6807\u7b7e\uff1a tomcatlog4jpropertiesaccessmanagerclass 2009-09-17 09:22 84068\u4eba\u9605\u8bfb \u8bc4\u8bba(5) \u6536\u85cf \u4e3e\u62a5 \u5206\u7c7b\uff1a Tomcat\uff083\uff09 \u7248\u6743\u58f0\u660e\uff1a\u672c\u6587\u4e3a\u535a\u4e3b\u539f\u521b\u6587\u7ae0\uff0c\u672a\u7ecf\u535a\u4e3b\u5141\u8bb8\u4e0d\u5f97\u8f6c\u8f7d\u3002 1 Tomcat \u65e5\u5fd7\u6982\u8ff0 Tomcat \u65e5\u5fd7\u4fe1\u606f\u5206 \u4e3a \u4e24 \u7c7b \uff1a \u4e00\u662f\u8fd0\u884c\u4e2d\u7684\u65e5\u5fd7\uff0c\u5b83\u4e3b\u8981 \u8bb0\u5f55 \u8fd0\u884c\u7684\u4e00\u4e9b\u4fe1\u606f\uff0c\u5c24\u5176\u662f\u4e00\u4e9b\u5f02\u5e38 \u9519\u8bef \u65e5\u5fd7\u4fe1\u606f \u3002 \u4e8c\u662f \u8bbf\u95ee \u65e5\u5fd7\u4fe1\u606f\uff0c\u5b83 \u8bb0\u5f55 \u7684 \u8bbf\u95ee \u7684 \u65f6\u95f4 \uff0c IP \uff0c \u8bbf\u95ee \u7684 \u8d44 \u6599\u7b49\u76f8 \u5173 \u4fe1\u606f\u3002 2 Tomcat \u65e5\u5fd7\u914d\u7f6e 2.1 \u8bbf\u95ee\u65e5\u5fd7\u7684\u914d\u7f6e \u9ed8\u8ba4 tomcat \u4e0d\u8bb0\u5f55\u8bbf\u95ee\u65e5\u5fd7\uff0c\u5982\u4e0b\u65b9\u6cd5\u53ef\u4ee5\u4f7f tomcat \u8bb0\u5f55\u8bbf\u95ee\u65e5\u5fd7 \u7f16\u8f91 ${catalina}\/conf\/server.xml \u6587\u4ef6 . \u6ce8 :${catalina} \u662f tomcat \u7684\u5b89\u88c5\u76ee\u5f55 \u628a\u4ee5\u4e0b\u7684\u6ce8\u91ca () \u53bb\u6389\u5373\u53ef\u3002 2.2 \u914d\u7f6e tomcat \u5199\u51fa\u66f4\u8be6\u7ec6\u7684\u65e5\u5fd7 \u901a\u8fc7\u5bf9 2.1 \u793a\u4f8b\u4e2d pattern \u9879\u7684\u4fee\u6539\uff0c\u53ef\u4ee5\u6539\u53d8\u65e5\u5fd7\u8f93\u51fa\u7684\u5185\u5bb9\u3002 \u8be5\u9879\u503c\u53ef\u4ee5\u4e3a\uff1a common \u4e0e combined \uff0c\u8fd9\u4e24\u4e2a \u9884 \u5148 \u8bbe \u7f6e\u597d\u7684 \u683c\u5f0f\u5bf9\u5e94\u7684\u65e5\u5fd7\u8f93\u51fa\u5185\u5bb9\u5982\u4e0b\uff1a common \u7684\u503c\uff1a %h %l %u %t %r %s %b combined \u7684\u503c\uff1a %h %l %u %t %r %s %b %{Referer}i %{User-Agent}i pattern \u4e5f\u53ef\u4ee5\u6839\u636e\u9700\u8981\u81ea\u7531 \u7ec4 \u5408 , \u4f8b\u5982 pattern=&quot;%h %l&quot; \u5bf9 \u4e8e\u5404 fields \u5b57\u6bb5\u7684\u542b \u4e49\u8bf7 \u53c2\u7167 : http:\/\/tomcat.apache.org\/tomcat-6.0-doc\/config\/valve.html \u4e2d\u7684 Access Log Valve \u9879 3 \u4fee\u6539 Tomcat \u8fd0\u884c\u65e5\u5fd7\u7684\u7b49\u7ea7 3.1 \u65e5\u5fd7\u7c7b\u578b\u4e0e\u7ea7\u522b Tomcat \u65e5\u5fd7\u5206\u4e3a\u4e0b\u9762\uff15\u7c7b\uff1a catalina \u3001 localhost \u3001 manager \u3001 admin \u3001 host-manager \u6bcf\u7c7b\u65e5\u5fd7\u7684\u7ea7\u522b\u5206\u4e3a\u5982\u4e0b 7 \u79cd\uff1a ALL&gt;SEVERE (highest value) &gt; WARNING &gt; INFO &gt; CONFIG &gt; FINE &gt; FINER &gt; FINEST (lowest value) 3.2 \u65e5\u5fd7\u7ea7\u522b\u7684\u8bbe\u5b9a\u65b9\u6cd5 \u4fee\u6539 conf\/logging.properties \u4e2d\u7684\u5185\u5bb9\uff0c\u8bbe\u5b9a\u67d0\u7c7b\u65e5\u5fd7\u7684\u7ea7\u522b \u793a\u4f8b\uff1a \u8bbe\u7f6e catalina \u65e5\u5fd7\u7684\u7ea7\u522b\u4e3a\uff1a FINE 1catalina.org.apache.juli.FileHandler.level = FINE \u7981\u7528 catalina \u65e5\u5fd7\u7684\u8f93\u51fa\uff1a 1catalina.org.apache.juli.FileHandler.level = OFF \u8f93\u51fa catalina \u6240\u6709\u7684\u65e5\u5fd7\u6d88\u606f\u5747\u8f93\u51fa\uff1a 1catalina.org.apache.juli.FileHandler.level = ALL 4 \u4f7f\u7528 log4j \u8bb0\u5f55\u5e94\u7528\u7a0b\u5e8f\u65e5\u5fd7\u6216 \u7cfb \u7edf \u65e5\u5fd7 4.1 \u4f7f\u7528 Log4j \u8f93 \u51fa \u8be6\u7ec6 \u7cfb \u7edf \u65e5\u5fd7\u4fe1\u606f\uff0c\u5feb\u901f \u8bca \u65ad\u542f \u52a8 \u6545\u969c \u6b64\u4f8b\u53ef\u5f25 \u8865 tomcat \u542f \u52a8 \u5f02\u5e38 \u65f6\u8f93 \u51fa\u7684 \u9519\u8bef \u4fe1\u606f\u4e0d\u8db3\u7684 \u95ee\u9898 \uff0c\u4f7f\u7528 commons-logging \u548c log4j \u642d\u914d \u8f93 \u51fa \u8be6 \u5c3d\u7684\u65e5\u5fd7\u4fe1 \u606f \u3002 \u4ee5 window \u73af\u5883\u4e0b tomcat5.5.27 \u4e3a\u4f8b\uff1a 1\u3001 tomcat \u89e3\u538b\u76ee\u5f55\u4e3a\uff1a E: \/tomcat5.5 2\u3001 \u8bbe\u7f6e\u73af\u5883\u53d8\u91cf\uff1a CATALINA_HOME=E: \/tomcat5.5 3\u3001 \u4e0b\u8f7d log4j \u4e0e commons-logging Log4j \u4e0b\u8f7d\u5730\u5740\uff1a http:\/\/logging.apache.org\/log4j\/1.2\/download.html Commons-logging \u4e0b\u8f7d\u5730\u5740\uff1a http:\/\/apache.freelamp.com\/commons\/logging\/binaries\/commons-logging-1.1.1-bin.zip 4\u3001 \u672c\u4f8b\u5c06 commons-logging-1.1.1.jar \u4e0e log4j-1.2.15.jar \u653e\u5728 %TOMCAT_HOME%\/bin \u76ee\u5f55\u4e0b\uff08\u53ef\u6839\u636e\u9700\u8981\u653e\u7f6e\u5728\u5176\u4f4d\u7f6e\uff09 5\u3001 \u5728 %TOMCAT_HOME%\/bin \u76ee\u5f55\u4e0b\u65b0\u5efa\u4e24\u4e2a\u6587\u4ef6 commons-logging.properties \u3001 log4j.properties commons-logging.properties \u6587\u4ef6\u5185\u5bb9\u5982\u4e0b\uff1a org.apache.commons.logging.Log=org.apache.commons.loggi&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_eb_attr":"","footnotes":""},"categories":[94],"tags":[],"class_list":["post-1669","post","type-post","status-publish","format-standard","hentry","category-tomcat"],"_links":{"self":[{"href":"https:\/\/oneai.eu.org\/index.php?rest_route=\/wp\/v2\/posts\/1669","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oneai.eu.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/oneai.eu.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/oneai.eu.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oneai.eu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1669"}],"version-history":[{"count":1,"href":"https:\/\/oneai.eu.org\/index.php?rest_route=\/wp\/v2\/posts\/1669\/revisions"}],"predecessor-version":[{"id":1670,"href":"https:\/\/oneai.eu.org\/index.php?rest_route=\/wp\/v2\/posts\/1669\/revisions\/1670"}],"wp:attachment":[{"href":"https:\/\/oneai.eu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1669"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oneai.eu.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1669"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oneai.eu.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1669"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}