gpt4 book ai didi

java - 如何在tomcat servlet应用程序中打印日志

转载 作者:行者123 更新时间:2023-12-01 07:41:36 24 4
gpt4 key购买 nike

我正在 ubuntu 10.04 中的 Tomcat 6.0 上创建 servlet。对于打印日志,我使用 System.setOut 来重定向输出。

System.setOut(new PrintStream(new File("/tmp/new.log")));

System.setErr(new PrintStream(new File("/tmp/new.log")));

我必须在 doPost() 中使用此代码,但是当运行我的应用程序时,我无法看到输出,这就是为什么我暂时将此代码移到 doGet() 中的原因。

当我通过浏览器点击网址http://127.0.0.1:8080/hello/hello时我在浏览器上收到以下错误

java.security.AccessControlException: access denied (java.io.FilePermission /tmp/new1.log read)
java.security.AccessControlContext.checkPermission(AccessControlContext.java:342)
java.security.AccessController.checkPermission(AccessController.java:553)
java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
java.lang.SecurityManager.checkRead(SecurityManager.java:888)
java.io.File.exists(File.java:748)
HelloWorldExample2.doGet(HelloWorldExample2.java:42)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
sun.reflect.GeneratedMethodAccessor32.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:616)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:269)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Subject.java:537)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:301)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162)**

最佳答案

我强烈建议使用日志框架,例如 log4j , SLF4j甚至是 Java 本身附带的 Logging 类。您在这里有点重新发明轮子:)

关于java - 如何在tomcat servlet应用程序中打印日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4335301/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com