正常情况下,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}
}