Subscribe

RSS Feed (xml)

Powered By

Skin Design:
Free Blogger Skins

Powered by Blogger

Saturday, December 1, 2007

java code for Logger for tag

/*


PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">


1.0
1.2
cbck
Cookbook custom tags
com.java2s.tags


log
com.java2s.LoggerTag
JSP
This tag uses log4j to log a message.

configFile
false
false
This attribute provides any configuration file name for the logger. The file must be located in WEB-INF/classes



level
true
false
This attribute provides the level for the log request.




*/
//Log4j from Apache is required

package com.java2s;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

import java.lang.reflect.Method;

import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;

public class LoggerTag extends BodyTagSupport {

private Logger log = null;

private String configFile = null;

private String level = null;

private final static String[] LEVELS = { "debug", "info", "warn", "error",
"fatal" };

public void setConfigFile(String fileName) {

this.configFile = fileName;

}

public void setLevel(String level) {

this.level = level;

}

public int doEndTag() throws JspException {

if (configFile != null)
PropertyConfigurator.configure(pageContext.getServletContext()
.getRealPath("/")
+ "WEB-INF/classes/" + configFile);

level = level.toLowerCase();
if (!contains(level))
throw new JspException(
"The value given for the level attribute is invalid.");

log = Logger.getLogger(LoggerTag.class);
String message = getBodyContent().getString().trim();
Method method = null;

try {

method = log.getClass().getMethod(level,
new Class[] { Object.class });
method.invoke(log, new String[] { message });

} catch (Exception e) {
}

return EVAL_PAGE;
}

public void release() {

log = null;
configFile = null;
level = null;
}

private boolean contains(String str) {

for (int i = 0; i < LEVELS.length; i++) {

if (LEVELS[i].equals(str))
return true;
}
return false;
}

}

No comments: