`

Struts2之log信息不出的问题

阅读更多

刚开始学习Struts2的时候,用的是maven方式,但是却不如官方文中所指的出log信息

 

http://struts.apache.org/2.2.1/docs/create-struts-2-web-application-using-maven-to-manage-artifacts-and-to-build-the-application.html

 

就是文末提到的:

Struts 2 Log Messages
com.opensymphony.xwork2.DefaultActionProxy.debug:57 - Creating an DefaultActionProxy for

 namespace / and action name index
...
org.apache.struts2.dispatcher.ServletDispatcherResult.debug:57 - Forwarding to location /index.jsp

 

 

很是疑惑,按理配置啥的官方都是全部提供的,配置位置也不可能搞错,因为如果删除了log4j.xml,启动tomcat后会有提示缺少log4j配置文件,那到底是哪里出了问题呢?

 

后来发现是少了commons-logging-1.0.4.jar,为什么maven自动编译会漏了这个jar包呢?pom.xml如下:

 

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>manning</groupId>
	<artifactId>Basic_Struts2_Mvn</artifactId>
	<packaging>war</packaging>
	<version>0.0.1-SNAPSHOT</version>
	<name>Basic Struts 2</name>
	<build>
		<finalName>Basic_Struts2_Mvn</finalName>
	</build>
	<dependencies>

		<dependency>
			<groupId>org.apache.struts</groupId>
			<artifactId>struts2-core</artifactId>
			<version>2.2.1</version>
		</dependency>

		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.14</version>
		</dependency>
		<dependency>
			<groupId>javassist</groupId>
			<artifactId>javassist</artifactId>
			<version>3.8.0.GA</version>
		</dependency>

	</dependencies>

</project>

 貌似是没提到commons-logging系列,还有一个问题log4j的输出怎么会需要common-logging呢,莫非这输出不如官方所说不是log4j的?

 

2010-12-30 11:00:02,700 DEBUG com.opensymphony.xwork2.config.ConfigurationManager.debug:68 - Checking ConfigurationProviders for reload.
2010-12-30 11:00:02,805 DEBUG com.opensymphony.xwork2.conversion.impl.InstantiatingNullHandler.debug:68 - Entering nullPropertyValue [target=[com.opensymphony.xwork2.DefaultTextProvider@3278f], property=struts]
2010-12-30 11:00:02,822 DEBUG com.opensymphony.xwork2.config.ConfigurationManager.debug:68 - Checking ConfigurationProviders for reload.
2010-12-30 11:00:02,879 DEBUG com.opensymphony.xwork2.conversion.impl.InstantiatingNullHandler.debug:68 - Entering nullPropertyValue [target=[com.opensymphony.xwork2.DefaultTextProvider@3278f], property=struts]
2010-12-30 11:00:02,889 DEBUG com.opensymphony.xwork2.config.ConfigurationManager.debug:68 - Checking ConfigurationProviders for reload.
2010-12-30 11:00:02,928 DEBUG com.opensymphony.xwork2.DefaultActionProxy.debug:68 - Creating an DefaultActionProxy for namespace / and action name index
2010-12-30 11:00:03,012 DEBUG com.opensymphony.xwork2.interceptor.I18nInterceptor.debug:68 - intercept '//index' {
2010-12-30 11:00:03,012 DEBUG com.opensymphony.xwork2.interceptor.I18nInterceptor.debug:68 - applied invocation context locale=zh_CN
2010-12-30 11:00:03,013 DEBUG com.opensymphony.xwork2.interceptor.I18nInterceptor.debug:68 - before Locale=zh_CN
2010-12-30 11:00:03,211 DEBUG com.opensymphony.xwork2.conversion.impl.InstantiatingNullHandler.debug:68 - Entering nullPropertyValue [target=[com.opensymphony.xwork2.ActionSupport@15aef45, com.opensymphony.xwork2.DefaultTextProvider@3278f], property=struts]
2010-12-30 11:00:03,268 DEBUG org.apache.struts2.interceptor.FileUploadInterceptor.debug:68 - Bypassing //index
2010-12-30 11:00:03,269 DEBUG com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.debug:68 - Setting static parameters {}
2010-12-30 11:00:03,283 DEBUG com.opensymphony.xwork2.interceptor.ParametersInterceptor.debug:68 - Setting params NONE
2010-12-30 11:00:03,284 DEBUG com.opensymphony.xwork2.interceptor.ParametersInterceptor.debug:68 - Setting params
2010-12-30 11:00:03,314 DEBUG org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.debug:68 - Validating //index with method execute.
2010-12-30 11:00:03,527 DEBUG com.opensymphony.xwork2.validator.ValidationInterceptor.debug:68 - Invoking validate() on action com.opensymphony.xwork2.ActionSupport@15aef45
2010-12-30 11:00:03,536 DEBUG com.opensymphony.xwork2.interceptor.PrefixMethodInvocationUtil.debug:68 - cannot find method [validateExecute] in action [com.opensymphony.xwork2.ActionSupport@15aef45]
2010-12-30 11:00:03,537 DEBUG com.opensymphony.xwork2.interceptor.PrefixMethodInvocationUtil.debug:68 - cannot find method [validateDoExecute] in action [com.opensymphony.xwork2.ActionSupport@15aef45]
2010-12-30 11:00:03,538 DEBUG com.opensymphony.xwork2.DefaultActionInvocation.debug:68 - Executing action method = null
2010-12-30 11:00:03,547 DEBUG org.apache.struts2.dispatcher.ServletDispatcherResult.debug:68 - Forwarding to location /index.jsp
2010-12-30 11:00:03,574 DEBUG com.opensymphony.xwork2.conversion.impl.InstantiatingNullHandler.debug:68 - Entering nullPropertyValue [target=[com.opensymphony.xwork2.ActionSupport@15aef45, com.opensymphony.xwork2.DefaultTextProvider@3278f], property=struts]
2010-12-30 11:00:03,595 DEBUG com.opensymphony.xwork2.conversion.impl.InstantiatingNullHandler.debug:68 - Entering nullPropertyValue [target=[com.opensymphony.xwork2.ActionSupport@15aef45, com.opensymphony.xwork2.DefaultTextProvider@3278f], property=org]
2010-12-30 11:00:03,799 DEBUG com.opensymphony.xwork2.interceptor.I18nInterceptor.debug:68 - after Locale=zh_CN
2010-12-30 11:00:03,799 DEBUG com.opensymphony.xwork2.interceptor.I18nInterceptor.debug:68 - intercept }

 

如上控制台日志信息com.opensymphony和org.apache.struts2都是在log4j.xml中配置的:

 

<!-- specify the logging level for loggers from other libraries -->
<logger name="com.opensymphony">
    <level value="DEBUG" />
</logger>

<logger name="org.apache.struts2">
    <level value="DEBUG" />
</logger>
 

可见,日志输出应与log4j是有直接关系的,尝试删除过log4j-1.2.14.jar,会导致日志不出,由此得出结论两个日志关联jar包缺一不可,但两者为什么要必须同时呢?用到了什么呢?

分享到:
评论

相关推荐

    Struts2+log4j

    在Struts2的Action中,开发者可以调用Log4j的API记录操作信息,如用户登录、数据插入等。这些日志信息不仅可以帮助开发者追踪和诊断问题,还可以作为审计日志,用于监控系统的安全性。例如,当用户尝试插入数据到...

    tomcat下struts2的log4j日志配置.doc

    在Tomcat服务器上配置Struts2框架的日志系统时,通常会利用Log4j来实现灵活、可定制的日志记录。Log4j的优势在于其高度的可配置性,允许开发者根据需要调整日志级别、输出格式以及日志目的地。 首先,要使用Log4j,...

    Struts2版本2.3.*升级2.5.10.1用到的log4j的包(含log4j-1.2-api-2.7)

    struts2.5.10.1 使用的是log4j2 所以需要导入log4j-api-2.7log4j-core-2.7 这两个jar包 并且为了从log4j 平稳的过度到log4j2导入log4j-1.2-api-2.7 jar(避免修改代码)

    搭建SSH框架需要引入的Struts2包(log4j,spring-web,struts2-spring-plugin)

    SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。在构建SSH框架时,每个框架都扮演着不同的角色,以提供一个高效、可扩展的后端架构。现在我们来详细了解一下搭建SSH...

    纯struts2开发带log4j的用户登录demo

    在本示例中,"纯struts2开发带log4j的用户登录demo"是教你如何利用Struts2框架来实现一个简单的用户登录功能,并结合log4j进行日志记录。Log4j是一个广泛使用的日志记录工具,它提供了灵活的日志配置,有助于调试、...

    struts2.3.20和log4j1.2.9完整开发jar包

    Struts2是基于MVC(Model-View-Controller)设计模式的开源Web应用程序框架,它极大地简化了Java Servlets和JSP(JavaServer Pages)的开发工作,而Log4j则是Apache组织提供的一个用于记录日志的开源工具,它具有...

    struts2,(slf4j-log4j12-1.5.8—日志) 建议360压缩解压

    在"slf4j-log4j12-1.5.8"这个包中,包含了SLF4J的API接口和Log4j的具体实现,使得开发者能够方便地将日志记录集成到Struts2应用中。 Struts2的基础jar包通常包含以下组件: 1. `struts2-core`: 这是Struts2的核心...

    struts2+hibernate+spring+mysql+tomcat+log4j

    Struts2、Hibernate、Spring、Log4j、Tomcat 和 MySQL 是Java Web开发中的关键组件,它们共同构建了一个高效、可扩展的Web应用程序框架。以下是对这些技术的详细解释: **Struts2**:Struts2是一个基于MVC(Model-...

    Struts2 日志原理及配置方法(结合Log4j)

    NULL 博文链接:https://adrain-work-163-com.iteye.com/blog/1545091

    Struts2漏洞检查工具Struts2.2019.V2.3

    2. 框架配置错误:如果开发者在配置Struts2时未遵循最佳实践,可能会导致敏感信息泄露、权限提升等安全问题。例如,不正确的Action配置可能导致未授权访问。 3. 类加载器问题:Struts2使用了自定义的类加载机制,这...

    Struts2升级到2.5.30,问题解决及过程记录

    在本文中,我们将探讨将Struts2从旧版本升级到2.5.30的过程中可能遇到的问题及其解决方案。 升级Struts2到2.5.30的主要目标是利用新版本提供的增强功能和安全补丁。Struts2的每个新版本通常会包含对前一版本的兼容...

    基于Struts2的个人信息管理系统

    基于Struts2的个人信息管理系统是使用这一框架来设计和实现的一个典型示例,它涵盖了用户管理、行程管理和文件操作等多个核心功能。 在用户管理模块中,Struts2提供了丰富的动作类(Action)和结果(Result)配置,...

    struts2jar包

    6. **其他依赖的jar包**:Struts2运行还需要一些其他的库,如freemarker或velocity用于模板引擎,javassist用于动态类生成,log4j或slf4j用于日志记录等。 引入Struts2的jar包有多种方式: - **Eclipse/IDEA等集成...

    struts2-scan_struts2-scan_struts2scan_scan_struts2漏洞_

    "struts2-scan"工具就是为了解决这样的问题而设计的。它能够自动化地扫描Struts2应用,识别可能存在的安全弱点,帮助开发者或安全团队及时发现并修复这些问题。该工具可能会通过模拟多种攻击向量,如OGNL注入,来...

    留言板留言板struts2留言板struts2

    3. **拦截器(Interceptor)**:Struts2的核心组件之一,可以理解为对请求和响应进行预处理和后处理的中间层。拦截器链是Struts2的一大特色,允许开发者自定义拦截器,实现如权限验证、日志记录、事务管理等功能。 4....

    Strtus2.3升级2.5(包含log4j升级log4j2)所需jar,和相关资料

    2. **查阅官方文档**:Struts2和Log4j的官方文档是升级过程中最重要的参考资料。它们会列出详细的升级指南、变更记录以及可能遇到的问题和解决方案。 3. **更新Struts2依赖**:将项目中的Struts2库替换为最新的2.5...

    struts2框架做的学生信息查询系统

    在"学生信息查询系统"这个项目中,Struts2框架被用来构建一个能够处理学生信息的后端逻辑。 首先,让我们深入了解Struts2的核心概念: 1. **Action类**:在Struts2中,业务逻辑通常封装在Action类中。Action类是...

    struts2关键jar包

    1. **xwork-core-2.1.6.jar**:这是Struts2的核心组件之一,XWork框架是Struts2的基础。它提供了Action、结果类型、拦截器、类型转换和对象图(Object Graph Notation Language,OGNL)等核心功能。XWork负责处理...

    Struts2常用jar包.rar

    - `commons-logging.jar`、`log4j.jar`:日志记录库,Struts2使用它们进行系统级别的日志输出。 - `javassist.jar`:提供运行时字节码操作,用于拦截器和其他动态功能。 在实际开发中,开发者可以根据项目需求...

    struts2-core.jar

    struts2-core-2.0.1.jar, struts2-core-2.0.11.1.jar, struts2-core-2.0.11.2.jar, struts2-core-2.0.11.jar, struts2-core-2.0.12.jar, struts2-core-2.0.14.jar, struts2-core-2.0.5.jar, struts2-core-2.0.6.jar,...

Global site tag (gtag.js) - Google Analytics