struts2配置log

Struts2初始化时,首先就会初始化log,看源码如下:

 1 public void init(FilterConfig filterConfig) throws ServletException {
 2         InitOperations init = new InitOperations();
 3         Dispatcher dispatcher = null;
 4         try {
 5             FilterHostConfig config = new FilterHostConfig(filterConfig);
 6             init.initLogging(config);//初始化log
 7             dispatcher = init.initDispatcher(config);
 8             init.initStaticContentLoader(config, dispatcher);
 9
10             prepare = new PrepareOperations(filterConfig.getServletContext(), dispatcher);
11             execute = new ExecuteOperations(filterConfig.getServletContext(), dispatcher);
12             this.excludedPatterns = init.buildExcludedPatternsList(dispatcher);
13
14             postInit(dispatcher, filterConfig);
15         } finally {
16             if (dispatcher != null) {
17                 dispatcher.cleanUpAfterInit();
18             }
19             init.cleanup();
20         }
21     }
 1 public void initLogging( HostConfig filterConfig ) {
 2         String factoryName = filterConfig.getInitParameter("loggerFactory");
 3         if (factoryName != null) {
 4             try {
 5                 Class cls = ClassLoaderUtil.loadClass(factoryName, this.getClass());
 6                 LoggerFactory fac = (LoggerFactory) cls.newInstance();//必须是LoggerFactory的子类
 7                 LoggerFactory.setLoggerFactory(fac);
 8             } catch ( InstantiationException e ) {
 9                 System.err.println("Unable to instantiate logger factory: " + factoryName + ", using default");
10                 e.printStackTrace();
11             } catch ( IllegalAccessException e ) {
12                 System.err.println("Unable to access logger factory: " + factoryName + ", using default");
13                 e.printStackTrace();
14             } catch ( ClassNotFoundException e ) {
15                 System.err.println("Unable to locate logger factory class: " + factoryName + ", using default");
16                 e.printStackTrace();
17             }
18         }
19     }

在web.xml中可以配置此log:

 1 <filter>
 2
 3         <filter-name>struts2</filter-name>
 4
 5         <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
 6
 7         <init-param>
 8             <param-name>loggerFactory</param-name>
 9             <param-value>com.opensymphony.xwork2.util.logging.commons.CommonsLoggerFactory</param-value>
10         </init-param>
11
12     </filter>

具体使用方法:

1     public static void test01() {
2         Logger log = LoggerFactory.getLogger(Test.class);
3         //必须是#加上数字的形式
4         log.info("#0t#1e#2st#3#4#5#6#7#8#9#10", new String[]{"a","b","c","d","e","f","g","h","i","j","k"});
5         log.error("#0t#1e#2st#3#4#5#6#7#8#9#10", new String[]{"a","b","c","d","e","f","g","h","i","j","k"});
6         log.warn("#0t#1e#2st#3#4#5#6#7#8#9#10", new String[]{"a","b","c","d","e","f","g","h","i","j","k"});
7         log.fatal("#0t#1e#2st#3#4#5#6#7#8#9#10", new String[]{"a","b","c","d","e","f","g","h","i","j","k"});
8     }

输出如下:

8 26, 2014 12:57:44 午後 test.Test info
情報: atbecstdefghijb0
8 26, 2014 12:57:44 午後 test.Test error
SEVERE: atbecstdefghijb0
8 26, 2014 12:57:44 午後 test.Test warn
WARNING: atbecstdefghijb0
8 26, 2014 12:57:44 午後 test.Test fatal
SEVERE: atbecstdefghijb0

时间: 2024-10-17 08:14:56

struts2配置log的相关文章

STRUTS2配置动态页面

CreateTime--2017年5月11日09:00:31Author:Marydon 1.struts配置 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/

Struts2 配置

Struts2 配置 1.首先建立一个Web Project 2.将struts提供的jar包,放到lib目录下(添加必须要使用的,额外的不加,防止出现问题) 必须使用的jar包: commons-fileupload-  .jar(处理文件上传的) commons-io-  .jar(上面的依赖于这个) commons-logging-  .jar(日志处理) ognl-  .jar(表达式语言) struts2-core-  .jar() xwork-core- .jar(struts的内核

【SSH2(理论篇)】--Struts2配置详解

上篇博客讨论了SSH2框架模型,在开发过程中发现SSH2的开发模型其实类似于经典的三层模式,在每一层中分别添加了不同的框架,显示层使用的是Struts2进行配置的,业务逻辑层使用的是Spring配置,数据持久层则采用的是Hibernate,开发模式简单易懂,接下来将会分别从三层着手讨论每一层的运行内容. 一.Struts体系简介 struts,是Apache软件基金会(ASF)赞助的一个开源项目,它通过采用Java Servlet/JSP技术,实现了基于Java EE Web应用的Model-V

Struts2配置细节

struts.xml中 action中配置 如果是返回到网页则 /AA/XX.jsp 如果是返回到action则看namespace然后传参数,如果是同一个namespace则直接写上返回的action的名字 从action传action有两种方式 一种是 type="chain" 1 <package name="p1" namespace="/namespace1" extends="struts-default"&

struts2配置中Action的name 和package的name和namespace作用

struts2配置中Action的name 和package的name和namespace是什么作用 在struts2 struts.xml 配置中  <package name="ajax" extends="json-default" namespace="/json">           <action name="ajaxLogin" class="com.rg.email.action.

深入Struts2配置元素

本章重点描述了一下struts拦截器的使用,文章的前面顺带介绍了一下struts的Bean配置.常量配置和包配置 1.Bean配置 Struts2是一个高度可拓展的框架,框架大部分核心组件都是以配置的方式写在配置文件中的,当开发者需要替换其核心组件的时候,只需要写好自己的实现类, 然后配置到配置文件中.我们打开struts2-core-2.x.x.jar文件,打开里面的struts-default.xml文件,看到该文件配置了大量的Bean定义,该配置文件部分 代码如下所示: <!-- 下面是s

MyEclipse下struts2配置使用和Ajax、json的配合

原创文章,转载请注明:MyEclipse下struts2配置使用和Ajax.json的配合 新手,初学struts2的配置,同时尝试与Ajax通过json交互.首先介绍MyEclipse下struts2的配置. 1.struts2的配置 右键项目,MyEclips->project facets->install apache struts(2.x)facets URL pattern我选择了*.action,libraries只选择了core 1.1撰写action 新建package,名为

Struts2配置详解_配置Action

Struts2的核心功能是action,对于开发人员来说,使用Struts2主要就是编写action,action类通常都要实现com.opensymphony.xwork2.Action接口,并实现该接口中的execute()方法. public String execute() throws Exception Struts2并不是要求所有编写的action类都要实现Action接口,也可以直接编写一个普通的Java类作为action,只要实现一个返回类型为String的无参的public方

Struts2配置详解

1.Namespace 1)namespace决定action的访问路径,默认为“”,可以接受所有路径的Action:       2)namespace可以写为/,或者/xxx,或者/xxx/yyy,对应action访问路径为/index.action,/xxx/index.action或者/xxx/yyy/index.action       3)namespace最好也用模块来进行命名 当url中输入不存在的Action的时候,定向到默认的Action 1.1 struts2配置详解 1.