Struts 2 简单使用 log4j2(timer 拦截器不输出信息)

今天刚学习拦截器的时候,书上说使用内置的 timer 可以打印出执行时间:

<package name="helloworld" extends="struts-default">
	<action name="HelloWorldAction" class="com.pm.ssh.HelloWorldAction">
		<result name="success">/helloname.jsp</result>
        <result name="error">/error.jsp</result>
        <interceptor-ref name="completeStack"/>
        <interceptor-ref name="timer"/>
	</action>
</package>

但我使用 struts-2.5.10-min-lib.zip 的包时,运行报错:

ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console

错误很明显是缺包,因为 struts-2.5.10-min-lib.zip 中只提供了 log4j-api-2.7,并没有提供 log4j-core 包。可以去 http://logging.apache.org/ 下载。

导入运行后,还是报错:ERROR StatusLogger No log4j2 configuration file found,因为还没有配置 log4j2,那么就进行配置呗,在 src 目录下新建 log4j2.xml,进行最基本的配置,这里是打印 info 往后级别的 log。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
    </Appenders>
    <Loggers>
        <Root level="info">
            <AppenderRef ref="Console"/>
        </Root>
    </Loggers>
</Configuration>

重新测试:

21:15:24.378 [http-nio-8080-exec-39] INFO  com.opensymphony.xwork2.interceptor.TimerInterceptor - Executed action [//HelloWorldAction!execute] took 282 ms.
21:15:24.378 [http-nio-8080-exec-39] INFO  com.opensymphony.xwork2.interceptor.LoggingInterceptor - Finishing execution stack for action //HelloWorldAction

OK啦。

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值