jfinal的action信息能输出到logback吗?

@JFinal @海哥

jfinal的action信息能输出到logback吗?尝试了很多办法,都没有办法把控制台显示的jfinal action信息写入文件,以前slf4j是可以的,换logback后就不知道怎么写了。

在程序中log.info方法添加的日志可以输出到logback,但是jfinal 的action Report没有办法输出到日志文件,怎么呢?

image.png

评论区

简单代码

2019-03-07 16:51

忘记说了,是使用的jboot,用bat文件启动的。

JFinal

2019-03-07 17:06

使用 ActionReporter.setWriter(...) 将输出定向到任何地方

海哥

2019-03-07 17:39

@简单代码 JPress 配置下logback的配置,https://gitee.com/fuhai/jpress/blob/v2.0/starter-tomcat/src/main/resources/logback.xml 同时,记得添加下logback的jar包依赖,参考:https://gitee.com/fuhai/jpress/blob/v2.0/starter-tomcat/pom.xml

简单代码

2019-03-08 09:24

@JFinal @海哥 谢谢两位老板

简单代码

2019-03-08 09:37

@JFinal 我在JBootApplication.run后面增加了writer,调试也看到赋值成功,但是刷新页面,断点ActionReporter,发现writer仍然指向了sysoutwriter,仍然是console输出的。
============class LogWriter===========
public static final Log logger = Log.getLog("JFinal");

public void write(String str) throws IOException {
logger.info(str);
}
============class starter=============
public class Starter {
public static void main(String[] args) {
JbootApplication.run(args);
LogWriter logWriter = new LogWriter();
ActionReporter.setWriter(logWriter);
}
}

简单代码

2019-03-08 09:44

@海哥 海哥也帮忙看看,jpress的pom也解决不了这个问题,我就是运行jpress发现jfinal的action并没有记录到日志里面,所以才想研究这个问题的。

海哥

2019-03-08 10:06

那是因为jpress默认是生产模式,关闭了debug日志功能,不会输出用户访问的日志。

简单代码

2019-03-08 10:49

@海哥 不是的,我已经设置为dev了,jfinal的action是用system.out输出的,所以进入不了log,但是可以通过该actionReport来输出,测试失败了。是jboot调用jfinal的时候改动了什么吗?

简单代码

2019-03-08 15:40

解决了。留下答案:需要在jfinal的config中对constants配置时再传入writer。

海哥

2019-03-08 16:08

赞!

l745230

2019-05-05 17:43

@简单代码 LogWriter完整的代码贴下看看

年轻人

2019-05-06 10:16

@简单代码 请问下日志的Writer,您是如何获取到的?

JFinal

2019-05-06 10:31

@年轻人 大致如下:
// 创建一个自己实现的 writer
Writer writer = new MyWriter();

// 将创建好的 writer 放入一个 static 变量,便于随时获取
WriterKit.set(writer);

// 切换 writer
ActionReporter.setWriter(writer);

// 随时获取
Writer writer = WriterKit.get();

chcode

2019-07-03 10:20

@JFinal System.out.print不会影响性能吗,为什么不把输出用log打印?

热门反馈

扫码入社