Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Weblogic托管服务器isn';正确记录错误_Java_Logging_Stdout_Stderr_Weblogic12c - Fatal编程技术网

Java Weblogic托管服务器isn';正确记录错误

Java Weblogic托管服务器isn';正确记录错误,java,logging,stdout,stderr,weblogic12c,Java,Logging,Stdout,Stderr,Weblogic12c,我正在使用一个托管WebLogic服务器,并注意到stdout.log文件中没有以应有的方式出现错误。常规的sysout会出现,但是catch块中发生的任何事情(抛出异常后)实际上都会出现在stdout.log文件的顶部 以下是我正在运行以复制此问题的测试代码: ... System.out.println("Testing error logging..."); try { throw new Exception(); } catch (Exception e) { // T

我正在使用一个托管WebLogic服务器,并注意到stdout.log文件中没有以应有的方式出现错误。常规的sysout会出现,但是catch块中发生的任何事情(抛出异常后)实际上都会出现在stdout.log文件的顶部

以下是我正在运行以复制此问题的测试代码:

...
System.out.println("Testing error logging...");

try {
    throw new Exception();
} catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

System.out.println("error thrown.");
...
下面是我执行该代码后日志的外观(仅显示相关内容):

有人能解释一下为什么记录错误时会从顶部覆盖吗?另外,似乎有一个配置文件丢失了,它正在动态创建。这可能是导致这个问题的原因吗

我希望所有的stdout和stderr都转到同一个日志文件,并简单地将新的日志输出附加到文件的末尾,但目前我不知道如何做到这一点

感谢和问候


Brandon

关于将weblogic中的JVM输出重定向到同一日志文件,您可以使用以下JVM标志: -Dweblogic.log.RedirectStdoutToServerLogEnabled=true

引用文件:

运行WebLogic服务器实例的JVM向standard error和standard out发送消息。服务器和应用程序代码直接写入这些流,而不是使用日志机制。通过一个配置选项,您可以将JVM输出重定向到所有注册的日志目的地,如服务器终端控制台和日志文件。启用时,日志条目将显示为通知严重性的消息

有关更多信息,请参阅本文件:

问候,,
Mohab

如果您不想使用-D参数,还可以在管理控制台的
服务器->日志->高级
部分选中重定向框
JAVA Memory arguments: -Xms512m -Xmx512m -XX:CompileThreshold=8000 -XXjava version "1.6.0_25"
Java(TM) SE Runtime Environment (build 1.6.0_25-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.0-b11, mixed mode)
Please use CMSClassUnloadingEnabled in place of CMSPermGenSweepingEnabled in the future
Jun 23, 2015 12:13:10 PM org.apache.axis.configuration.EngineConfigurationFactoryServlet getServerEngineConfig
**SEVERE: Unable to find config file.  Creating new servlet engine config file: /WEB-INF/server-config.wsdd**
java.lang.Exception
    at ErrorLoggingTest.doGet(ErrorLoggingTest.java:33)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3594)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2202)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2108)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1432)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
th Java version:
Starting WLS with line:

...

(lots of logging in between, from the WebLogic server startup process)

...

Testing error logging...

error thrown.