313 Star 3.4K Fork 728

dromara / forest

 / 详情

自定义可扩展的请求日志

已完成
拥有者
创建于  
2020-10-13 16:19

1、可以自定义日志打印的内容

2、可以针对单个请求打开和关闭日志

评论 (1)

公子骏 创建了任务
公子骏 关联仓库设置为DtFlys/forest
公子骏 负责人设置为公子骏
公子骏 添加了
 
feature
标签
公子骏 添加了
 
enhancement
标签
公子骏 任务状态待办的 修改为进行中
展开全部操作日志

已实现,实现版本:v1.5.0-BETA1

    1. 自定义日志打印的内容

现实ForestLogHandler接口,或者继承DefaultLogHandler

public class TestLogHandler extends DefaultLogHandler {

    /**
     * 该方法生成Forest请求的日志内容字符串
     * @param requestLogMessage 请求日志字符串
     * @return 日志内容字符串
     */
    @Override
    protected String requestLoggingContent(RequestLogMessage requestLogMessage) {
        return super.requestLoggingContent(requestLogMessage);
    }

    /**
     * 该方法生成Forest请求响应结果的日志内容字符串
     * @param responseLogMessage 请求响应日志字符串
     * @return 日志内容字符串
     */
    @Override
    protected String responseLoggingContent(ResponseLogMessage responseLogMessage) {
        return super.responseLoggingContent(responseLogMessage);
    }

}

重写其中的requestLoggingContent方法和responseLoggingContent方法

并配置该日志处理器类

全局配置:
forest:
  ## 日志总开关,打开/关闭Forest请求/响应日志
  log-enabled: true
  ## 打开/关闭Forest请求日志
  log-request: false
  ## 打开/关闭Forest响应状态日志
  log-response-status: false
  ## 打开/关闭Forest响应内容日志
  log-response-content: true
  ## 全局日志处理器类
  log-handler: com.dtflys.forest.springboot.test.logging.TestLogHandler

##### LogHandler注解

通过`@LogHandler`注解可以指定某一个请求接口的日志处理类

```java
@Get(url = "http://localhost:8080/send")
@LogHandler(com.dtflys.forest.springboot.test.logging.TestLogHandler.class)
String send(@Query("msg") String message);

    1. 可以针对单个请求打开和关闭日志
使用@LogEnabled注解

/** 默认开关:允许打印请求日志、响应状态日志,但不打印响应内容日志 */
@Get(url = "http://localhost:8080/send")
@LogEnabled
String send(@Query("msg") String message);

/** 同上 */
@Get(url = "http://localhost:8080/send")
@LogEnable(true)
String send(@Query("msg") String message);


/** 关闭该请求的所有日志 */
@Get(url = "http://localhost:8080/send")
@LogEnabled(false)
String send(@Query("msg") String message);

/** 不打印请求日志 */
@Get(url = "http://localhost:8080/send")
@LogEnabled(logRequest = false)
String send(@Query("msg") String message);

/** 不打印响应状态日志 */
@Get(url = "http://localhost:8080/send")
@LogEnabled(logResponseStatus = false)
String send(@Query("msg") String message);

/** 打印响应内容日志 */
@Get(url = "http://localhost:8080/send")
@LogEnabled(logResponseContent = true)
String send(@Query("msg") String message);

公子骏 任务状态进行中 修改为已完成

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(1)
1216742 dt flys 1594991700
Java
1
https://gitee.com/dromara/forest.git
git@gitee.com:dromara/forest.git
dromara
forest
forest

搜索帮助