KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > alfresco > sample > loggerAction > LoggerActionExecuter


1 /*
2  * Copyright (C) 2005 Alfresco, Inc.
3  *
4  * Licensed under the Mozilla Public License version 1.1
5  * with a permitted attribution clause. You may obtain a
6  * copy of the License at
7  *
8  * http://www.alfresco.org/legal/license.txt
9  *
10  * Unless required by applicable law or agreed to in writing,
11  * software distributed under the License is distributed on an
12  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
13  * either express or implied. See the License for the specific
14  * language governing permissions and limitations under the
15  * License.
16  */

17 package org.alfresco.sample.loggerAction;
18
19 import java.util.List JavaDoc;
20
21 import org.alfresco.repo.action.ParameterDefinitionImpl;
22 import org.alfresco.repo.action.executer.ActionExecuterAbstractBase;
23 import org.alfresco.service.cmr.action.Action;
24 import org.alfresco.service.cmr.action.ParameterDefinition;
25 import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
26 import org.alfresco.service.cmr.repository.NodeRef;
27 import org.apache.commons.logging.Log;
28 import org.apache.commons.logging.LogFactory;
29
30 /**
31  * Logger action executer.
32  *
33  * This action will log a message to the application log file at the level specified.
34  *
35  * @author Roy Wetherall
36  */

37 public class LoggerActionExecuter extends ActionExecuterAbstractBase
38 {
39     /** The logger */
40     private static Log logger = LogFactory.getLog(LoggerActionExecuter.class);
41     
42     /** The name of the action */
43     public static final String JavaDoc NAME = "logger-action";
44     
45     /** The parameter names */
46     public static final String JavaDoc PARAM_LOG_MESSAGE = "param_log_message";
47     public static final String JavaDoc PARAM_LOG_LEVEL = "param_log-level";
48     
49     /**
50      * This action will take the log message and log it at the provided log level.
51      *
52      * If the log level is not provided the default will be INFO.
53      *
54      * @see org.alfresco.repo.action.executer.ActionExecuterAbstractBase#executeImpl(org.alfresco.service.cmr.action.Action, org.alfresco.service.cmr.repository.NodeRef)
55      */

56     @Override JavaDoc
57     protected void executeImpl(Action action, NodeRef actionedUponNodeRef)
58     {
59         // Get the log message parameter
60
String JavaDoc logMessage = (String JavaDoc)action.getParameterValue(PARAM_LOG_MESSAGE);
61         if (logMessage != null && logMessage.length() != 0)
62         {
63             // Get the log level (default to INFO)
64
LogLevel logLevel = LogLevel.INFO;
65             String JavaDoc logLevelParam = (String JavaDoc) action.getParameterValue(PARAM_LOG_LEVEL);
66             if (logLevelParam != null && logLevelParam.length() != 0)
67             {
68                 logLevel = LogLevel.valueOf(logLevelParam);
69             }
70             
71             // Log the message based on the log level
72
switch (logLevel)
73             {
74                 case DEBUG:
75                 {
76                     logger.debug(logMessage);
77                     break;
78                 }
79                 case ERROR:
80                 {
81                     logger.error(logMessage);
82                     break;
83                 }
84                 case FATAL:
85                 {
86                     logger.fatal(logMessage);
87                     break;
88                 }
89                 case INFO:
90                 {
91                     logger.info(logMessage);
92                     break;
93                 }
94                 case TRACE:
95                 {
96                     logger.trace(logMessage);
97                     break;
98                 }
99                 case WARN:
100                 {
101                     logger.warn(logMessage);
102                     break;
103                 }
104             }
105         }
106     }
107
108     /**
109      * @see org.alfresco.repo.action.ParameterizedItemAbstractBase#addParameterDefintions(java.util.List)
110      */

111     @Override JavaDoc
112     protected void addParameterDefintions(List JavaDoc<ParameterDefinition> paramList)
113     {
114         // Specify the parameters
115
paramList.add(new ParameterDefinitionImpl(PARAM_LOG_MESSAGE, DataTypeDefinition.TEXT, true, getParamDisplayLabel(PARAM_LOG_MESSAGE)));
116         paramList.add(new ParameterDefinitionImpl(PARAM_LOG_LEVEL, DataTypeDefinition.TEXT, false, getParamDisplayLabel(PARAM_LOG_LEVEL)));
117     }
118     
119     /**
120      * Helper enum to differentiate log levels
121      */

122     private enum LogLevel
123     {
124         DEBUG, ERROR, FATAL, INFO, WARN, TRACE
125     }
126 }
127
Popular Tags