【Java】Logbook优化接口调用日志输出,优雅!

logbook 简介

很多人可能没有接触过 logbook,但它的确是一个很好用的日志框架。引用官网的介绍

Logbook 是一个可扩展的 Java 库,可以为不同的客户端和服务器端技术启用完整的请求和响应日志记录。它通过以下方式满足了特殊需求:

  • 允许 Web 应用程序开发人员记录应用程序接收或发送的任何 HTTP 流量 ,这意味着只要是 HTTP 请求它都可以选择记录日志
  • 以一种易于持久化和分析的方式。这对于传统的日志分析、满足审计要求或调查个别历史流量问题非常有用。

具体介绍可以参考 链接: logbook 官网

使用logbook

这边主要讲解logbookspringBoot2的整合
logbook 官方提供了 logbook-spring-boot-starter

简单使用

引入依赖

<!--按照官方要求 为了 Spring 5 / Spring Boot 2 向后兼容,需要导入如下依赖-->
<dependency>
   <groupId>org.zalando</groupId>
   <artifactId>logbook-servlet</artifactId>
   <version>3.9.0</version>
   <classifier>javax</classifier>
</dependency>
<dependency>
   <groupId>org.zalando</groupId>
   <artifactId>logbook-spring-boot-starter</artifactId>
   <version>3.9.0</version>
</dependency>

添加配置

logging:
  level:
    org.zalando.logbook: TRACE

写个测试接口就可以看到日志了

{
	"origin": "remote", //remote 代表远程请求,local 代表本地发出的请求 例如 Feign
	"type": "request",
	"correlation": "b2b2b8e449d7b650", //请求唯一id
	"protocol": "HTTP/1.1",
	"remote": "0:0:0:0:0:0:0:1",
	"method": "GET",
	"uri": "http://localhost:8080/consumer",
	"headers": {
		"accept": ["text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"],
		"accept-encoding": ["gzip, deflate, br"],
		"accept-language": ["zh-CN,zh;q=0.9"],
		"cache-control": ["max-age=0"],
		"connection": ["keep-alive"],
		"host": ["localhost:8080"],
		//...省略
	}
}

选择日志风格

logbook 提供了多种日志风格,默认是 JSON ,在 application.yml 中通过以下配置选择

logbook:
  format:
    style: json #默认值,可选值还有 curl、http、splunk

转载: 原文

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
麻雀算法是一种基于生物启发的人工智能搜索算法,它模拟了麻雀觅食的行为,用于解决机器学习模型中的超参数优化问题,包括LSTM(长短时记忆网络)。在优化LSTM的代码中,可能会这样应用: 1. **引入麻雀算法库**:首先需要安装专门处理这种优化的第三方库,如DEAP (Distributed Evolutionary Algorithms in Python),这是一个流行的遗传算法库。 ```python from deap import algorithms, base, creator, tools ``` 2. **定义适应度函数**:通常我们会定义一个评估模型性能的函数作为适应度函数,比如在LSTM上,可能是训练集上的损失或验证集上的准确率。 ```python creator.create("FitnessMax", base.Fitness, weights=(1.0,)) def eval_model(model_params): model = LSTM(**model_params) _, fitness = train_and_validate(model) return fitness, ``` 3. **初始化种群和个体**:创建一个包含若干LSTM参数的初始种群,每个个体都是一个包含多个参数的列表。 ```python toolbox = base.Toolbox() creator.set_traits(Dict immobilized=False, # 是否采用静态策略 dict(length=64)) # LSTM参数的数量 toolbox.register("individual", tools.initCycle, creator.Individual, toolbox.dict(), n=toolbox.length) toolbox.register("population", tools.initRepeat, list, toolbox.individual) ``` 4. **定义选择、交叉和变异操作**:按照麻雀算法规则调整这些步骤。 5. **运行进化过程**:利用DEAP提供的算法模块(如`algorithms.eaSimple`)运行进化循环,直到达到预设的代数或找到满足条件的解决方案。 ```python pop, logbook = algorithms.eaSimple(population, toolbox, cxpb=0.8, mutpb=0.1, ngen=100, verbose=True) best_solution = pop[logbook.select(fitness=operator.attrgetter("fitness"), k=1)] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值