package jp.dip.arimodoki.common;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class MyLog4J {
private static MyLog4J thisinstance = null;
public synchronized static MyLog4J getInstance() {
if(MyLog4J.thisinstance == null) {
MyLog4J.thisinstance = new MyLog4J();
}
return MyLog4J.thisinstance;
}
private MyLog4J() {}
private String getMessage(String msg) {
Class<?> c = this.getClass();
String thisClassName = c.getName();
Thread t = Thread.currentThread();
StackTraceElement[] stackTraceElements = t.getStackTrace();
int pos = 0;
for (StackTraceElement stackTraceElement : stackTraceElements) {
if(thisClassName.equals(stackTraceElement.getClassName())) {
break;
}
pos++;
}
pos += 2;
StackTraceElement m = stackTraceElements[pos];
String log_str = m.getClassName() + ":" + m.getMethodName()+ "() " +msg;
return log_str;
}
public void log_dbg(String msg) {
Logger logger = LogManager.getLogger(this.getClass());
logger.debug("{}", this.getMessage(msg));
}
public void log_info(String msg) {
Logger logger = LogManager.getLogger(this.getClass());
logger.info("{}", this.getMessage(msg));
}
public void log_info(Object obj, String msg) {
Logger logger = LogManager.getLogger(obj.getClass());
logger.info("{}", msg);
}
public void log_warn(String msg) {
Logger logger = LogManager.getLogger(this.getClass());
logger.warn("{}", this.getMessage(msg));
}
public void log_error(Exception e) {
String msg = e.getMessage();
Class<? extends Object> clss = e.getClass();
String clsname = e.getClass().getName();
StackTraceElement[] st = e.getStackTrace();
String log_msg = "";
if ( st != null && st.length > 0 ) {
log_msg += "Class:" + clsname+ "¥n";
log_msg += "Detail:" + msg + "¥n";
for(int i=0; i<st.length ; i++) {
String err = st[i].toString();
log_msg += err + "¥n";
}
Logger logger = LogManager.getLogger(clss);
logger.error("{}", log_msg);
}
}
}
|