正常情况下,Jboot的action日志只显示在控制台,查看JbootActionReporter源码:
原来如此。
如果需要将其同时输出到日志文件中,按如下步骤即可:
创建自己的LogOutWriter;
private static class LogOutWriter extends Writer { private Log LOG = Log.getLog(JbootActionReporter.class); @Override public void close() throws IOException { } @Override public void flush() throws IOException { } @Override public void write(char[] cbuf, int off, int len) throws IOException { } @Override public void write(String str) throws IOException { this.LOG.info(str); } }
继承JbootAppListenerBase,自定义自己的Jboot启动类;
public class JbsaAppListener extends JbootAppListenerBase { private static class LogOutWriter extends Writer { // 上面的LogOutWriter放在此类中定义为static class就好。 } }
启动类中覆盖onStartBefore()方法,设置JbootActionReporter输出日志的通道为LogOutWriter;
@Override public void onStartBefore() { super.onStartBefore(); JbootActionReporter.setWriter(new LogOutWriter()); }
{
# 运行为后台进程,并在控制台输出信息
java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS} &
# 运行为后台进程,并且不在控制台输出信息
# nohup java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS} >/dev/null 2>&1 &
# 运行为后台进程,并且将信息输出到 output.log 文件
# nohup java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS} > output.log &
# 运行为非后台进程,多用于开发阶段,快捷键 ctrl + c 可停止服务
# java -Xverify:none ${JAVA_OPTS} -cp ${CP} ${MAIN_CLASS}
}