<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="throwable: %throwable"/>
</Console>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.13.3</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.13.3</version>
</dependency>
</dependencies>
public class Main {
public static void main(String[] args) {
Logger logger = LogManager.getLogger();
try {
new FileInputStream("asdf");
} catch(Exception e) {
logger.error(e);
}
}
}
throwable:
throwable: java.io.FileNotFoundException: asdf (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.io.FileInputStream.<init>(FileInputStream.java:93)
at Main.main(Main.java:10)
任何帮助都会很好!
编辑:我正在使用Java 8
您正在使用logger.error(Object)
。具有单个对象参数的所有日志记录方法只记录该对象的toString()
值,即使该对象是可抛出的。在您的示例中,appender模式不包含%m
/%msg
/%message
,因此您只能在控制台输出中看到“throwable:”。
如果将消息添加到模式中,则输出为:
throwable: java.io.FileNotFoundException: asdf (The system cannot find the file specified)
在使用Log4j2时,这是一个非常常见的缺陷,不幸的是,这一点在将来似乎不会改变。
要正确记录异常及其堆栈跟踪,您可以使用带有单独的Throwable
参数的日志记录方法之一,例如logger.error(String,Throwable)
,也可以使用logger.catch(Level,Throwable)
。但是,应该首选带有message参数的日志记录方法,因为它们允许您描述上下文。否则,您可能很难找到日志消息的实际创建位置。
我尝试了几乎所有我能在StackOverflow和其他地方找到的东西来让它工作,但它仍然不工作。我使用的是Spring框架4.1.6。发布,Spring安全4.0.0。释放。我配置了命名空间注销标记,我能够使会话无效的唯一方法是通过在我的控制器中使用HttpSession.invalidate()调用以编程方式执行它。 当请求注销时,我会被重定向到相应的页面,但是会话不会失效,JSSessionI
问题内容: 我正在考虑为我的应用程序使用OAuth2。我尝试实现的体系结构如下: 我将拥有自己的(仅此)授权服务器 一些资源应用程序使用授权服务器验证对资源的访问 某些客户端应用程序(网络,移动设备)会将用户重定向到授权服务器进行身份验证,如果成功,则会在资源应用程序上使用api。 到目前为止,我已经成功实现了3个基本应用程序(1个身份验证服务器,1个资源服务器和1个客户端)之间的交互。我无法正常
null 提前道谢。
问题内容: 是否可以检测PC何时注销。我需要开发一个应用程序,在PC注销之前,该应用程序将有关注销时间的文本文档写入文本。 问题答案: 对于.NET,请参见以下问题:[c#中是否有方法可以检测Windows关闭/注销并取消该操作(询问用户之后)http://codingdict.com/questions/159553)
我在Spring Security上遇到了麻烦。我可以登录但不能注销(至少不是按预期)。 登录后,我将被重定向到/secure/home.xhtml 这里是迄今为止的代码: 索引.xhtm spring-security.xhtml, http conf 这是我试图在stackoverflow上实现有关其他答案的注销的方式: 但这两个链接都不起作用。我得到了404。我还读到你应该替换请求。带有pa
我在ADFS上有saml。一切正常,但我有不止一个依赖方的信任。然后,当我登录到我的一个webapp(信赖方信任)并注销时,一切都很好。 但当我登录到第一个web应用程序,然后再登录到第二个web应用程序时,我可以在ADF上使用cookie:samleSession,它结合了两个会话,然后当我从第一个web应用程序注销时,我会重定向到第二个web应用程序上的注销页面,并且不会删除网站1上的cook