package org.springside.examples.showcase.log;
import org.apache.struts2.convention.annotation.Namespace;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springside.examples.showcase.log.trace.TraceUtils;
import org.springside.examples.showcase.log.trace.Traced;
import com.opensymphony.xwork2.ActionSupport;
/**
* 演示向数据库写入日志的Action.
*
* @author calvin
*/
@Namespace("/log")
public class LogAction extends ActionSupport {
private static final long serialVersionUID = 3331334076147567129L;
/**
* 在log4j.properties中,本logger已被指定使用asyncAppender.
*/
public static final String DB_LOGGER_NAME = "DBLogExample";
@Override
public String execute() {
logDB();
logTrace();
logAop(1);
return SUCCESS;
}
private void logDB() {
Logger logger = LoggerFactory.getLogger(DB_LOGGER_NAME);
logger.info("helloworld!!");
}
private void logTrace() {
Logger logger = LoggerFactory.getLogger(LogAction.class);
TraceUtils.beginTrace();
logger.debug("Hello, a debug message");
TraceUtils.endTrace();
}
@Traced
private int logAop(int i) {
return i;
}
}