日期:2014-05-20  浏览次数:20789 次

windows2003下tomcat按日期生成日志问题
网上查了N多资料,大家说的都查不多,有的在本机winXP系统上能按日期生成日志,可放到windows2003服务器上就不行了。每次程序代码里面输出的log.info()信息总是输出到stdout_20111018.log这样的文件中,而这个日志文件怎么配置log4j.properties都不会按天分隔日志,就算我把整个log4j.properties文件删掉不用,tomcat还是会默认生成stdout_20111018.log这样的文件,只有每次重启tomcat才会新生成stdout_20111018.log这样的文件,我想要的结果是:windows2003下tomcat按日期生成log.info()信息的日志文件。我用的是免安装版的tomcat6.0,发布的是webservice接口,windows2003的操作系统,用的是开始->运行->net start tomcat6此种方式启动的tomcat.各位大侠帮忙解答下,我郁闷好久了。

------解决方案--------------------
在windows下tomcat的启动脚本默认不像unix下的脚本那样输出应用日志到logs/catalina.out,只在console中输出,如果日志刷的太快根本没法找到错误信息。
为了把日志输出到文件,需要修改以下脚本。
1)修改startup.bat,把脚本的倒数第二行:call "%EXECUTABLE%" start %CMD_LINE_ARGS%
改为:call "%EXECUTABLE%" run %CMD_LINE_ARGS%
2)修改catalina.bat最后的一部分代码:
rem Execute Java with the applicable properties
if not "%JPDA%" == "" goto doJpda
if not "%SECURITY_POLICY_FILE%" == "" goto doSecurity
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION% >> %CATALINA_HOME%\logs\catalina.%date:~0,10%.out
goto end
:doSecurity
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION% >> %CATALINA_HOME%\logs\catalina.%date:~0,10%.out
goto end
:doJpda
if not "%SECURITY_POLICY_FILE%" == "" goto doSecurityJpda
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %JPDA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION% >> %CATALINA_HOME%\logs\catalina.%date:~0,10%.out
goto end
:doSecurityJpda
%_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %JPDA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION% >> %CATALINA_HOME%\logs\catalina.%date:~0,10%.out
goto end
:end
红色加粗的部分是需要增加的代码。