Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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 每个堆栈跟踪行上的Wildfly日志日期_Java_Logging_Wildfly - Fatal编程技术网

Java 每个堆栈跟踪行上的Wildfly日志日期

Java 每个堆栈跟踪行上的Wildfly日志日期,java,logging,wildfly,Java,Logging,Wildfly,我使用wildfly,但文件日志处理程序的输出有问题。它以完整格式打印堆栈跟踪的每一行错误。这是一个切分的例子: 12:13:11,238 ERROR [stderr] (default task-48) org.apache.shiro.authc.UnknownAccountException: Realm [XXX.account.library.security.shiro.ClientApplicationRealm@14896aa1] was unable to find accou

我使用wildfly,但文件日志处理程序的输出有问题。它以完整格式打印堆栈跟踪的每一行错误。这是一个切分的例子:

12:13:11,238 ERROR [stderr] (default task-48) org.apache.shiro.authc.UnknownAccountException: Realm [XXX.account.library.security.shiro.ClientApplicationRealm@14896aa1] was unable to find account data for the submitted AuthenticationToken [org.apache.shiro.authc.UsernamePasswordToken - XXX, rememberMe=false].
12:13:11,238 ERROR [stderr] (default task-48)   at org.apache.shiro.authc.pam.ModularRealmAuthenticator.doSingleRealmAuthentication(ModularRealmAuthenticator.java:184)
12:13:11,238 ERROR [stderr] (default task-48)   at org.apache.shiro.authc.pam.ModularRealmAuthenticator.doAuthenticate(ModularRealmAuthenticator.java:267)
12:13:11,238 ERROR [stderr] (default task-48)   at org.apache.shiro.authc.AbstractAuthenticator.authenticate(AbstractAuthenticator.java:198)
12:13:11,238 ERROR [stderr] (default task-48)   at org.apache.shiro.mgt.AuthenticatingSecurityManager.authenticate(AuthenticatingSecurityManager.java:106)
...
我只想让带有
“12:13:11238 ERROR[stderr](default task-48)”
的行在开始时出现一次,堆栈的每一方跟踪以“at”开头,而不是作为新的日志行解释为新的日志行

我有一个额外的SMTP日志处理程序,也有同样的问题。因此,它为堆栈跟踪的每一行发送一封电子邮件,而不是为每个错误或异常发送一封电子邮件


提前谢谢

这看起来很像有人在代码中留下了如下内容:

  try {
      // do something that throws an exception
  } catch (SomeException e) {
      e.printStackTrace();
  }
如果这是在ApacheShiro代码中,我会非常惊讶

一般来说,最好使用许多日志库中的一个,并按如下方式报告:

  } catch (SomeException e) {
      logger.error("Something failed", e);
  }

在某些情况下,如果您正在部署中使用日志配置中定义的控制台追加器或处理程序,这也可能导致此问题。原因是WildFly在记录器中同时包装了
System.out
System.err
。这将导致您看到的格式。

这看起来很像有人在代码中留下了如下内容:

  try {
      // do something that throws an exception
  } catch (SomeException e) {
      e.printStackTrace();
  }
如果这是在ApacheShiro代码中,我会非常惊讶

一般来说,最好使用许多日志库中的一个,并按如下方式报告:

  } catch (SomeException e) {
      logger.error("Something failed", e);
  }

在某些情况下,如果您正在部署中使用日志配置中定义的控制台追加器或处理程序,这也可能导致此问题。原因是WildFly在记录器中同时包装了
System.out
System.err
。这将导致您看到的格式。

我不打印任何堆栈跟踪。此外,我在应用程序中使用logback,因此我有两个日志文件,服务器日志和应用程序日志。我已经按照您描述的方式进行了异常处理,带有logback的应用程序日志看起来很好,但wildfly服务器日志中的相同错误与上面描述的相同,因此我认为这是wildfly错误处理的问题。您是否使用logback ConsolePender?很好,这是正确的提示。我删除了控制台appender,它工作正常。非常感谢。@JamesR.Perkins您想添加正确答案吗?我将删除不正确的答案。我将使用ConsolePender作为另一个选项编辑此答案。考虑到原始问题,答案是正确的。我不打印任何堆栈跟踪。此外,我在应用程序中使用logback,因此我有两个日志文件,服务器日志和应用程序日志。我已经按照您描述的方式进行了异常处理,带有logback的应用程序日志看起来很好,但wildfly服务器日志中的相同错误与上面描述的相同,因此我认为这是wildfly错误处理的问题。您是否使用logback ConsolePender?很好,这是正确的提示。我删除了控制台appender,它工作正常。非常感谢。@JamesR.Perkins您想添加正确答案吗?我将删除不正确的答案。我将使用ConsolePender作为另一个选项编辑此答案。根据原来的问题,答案是正确的。