常用工具 脚手架资料 log4j 序列化protobuf 可视化grafana 日志 glog 测试 gtest

常用工具 脚手架资料

log4j

# 业务日志
log4j.rootLogger=INFO,R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %5p %m (%F:%L)%n

log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=/folder/service.log
log4j.appender.R.DatePattern=.yyyy-MM-dd_HH
log4j.appender.R.BufferedIO=false
log4j.appender.R.MaxBackupIndex=36
log4j.appender.R.Threshold=INFO
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d %5p %m%n

# 服务化平台日志
log4j.logger.RpcCall=TRACE,Call

log4j.appender.Call=org.apache.log4j.DailyRollingFileAppender
log4j.appender.Call.File=/folder/service.call.log
log4j.appender.Call.DatePattern=.yyyy-MM-dd_HH
log4j.appender.Call.BufferedIO=false
log4j.appender.Call.MaxBackupIndex=36
log4j.appender.Call.layout=org.apache.log4j.PatternLayout
log4j.appender.Call.layout.ConversionPattern=%p %d{yyyy-MM-dd HH:mm:ss} %F:%L %m%n

log4j.logger.RpcAccess=TRACE,Access

log4j.appender.Access=org.apache.log4j.DailyRollingFileAppender
log4j.appender.Access.File=/folder/service.access.log
log4j.appender.Access.DatePattern=.yyyy-MM-dd_HH
log4j.appender.Access.BufferedIO=false
log4j.appender.Access.MaxBackupIndex=36
log4j.appender.Access.layout=org.apache.log4j.PatternLayout
log4j.appender.Access.layout.ConversionPattern=%p %d{yyyy-MM-dd HH:mm:ss} %F:%L %m%n

protobuf

Protobuf(Protocol Buffers)是Google开发的一种数据序列化协议(类似于XML、JSON、YAML等)。它提供了一种轻便且高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。序列化数据可以写入磁盘,以便之后进行反序列化恢复原始数据,同时也可以通过网络发送。

  • Protobuf的主要特点包括:

高效:相比于XML和JSON,Protobuf序列化后的数据体积小、速度快、效率高。它使用二进制格式进行数据的序列化和反序列化,这种格式更加紧凑,占用的存储空间更小,传输速度更快。
简洁:Protobuf使用一种简洁的结构定义语言来定义数据结构和消息格式。这种语言具有类似于C语言的语法,使用起来非常直观和简单。
可扩展性和兼容性:Protobuf支持数据结构的向前和向后兼容。当数据结构发生变化时,可以向旧的数据结构中添加新的字段,而不会影响已有的数据。
多语言支持:Protobuf支持多种编程语言,如Java、C++、Python等,并提供了对应的代码生成工具。

  • Protobuf的使用场景主要包括:

数据存储和交换:由于其紧凑的二进制格式和易于解析的特点,Protobuf特别适合于存储和交换大量结构化数据。
网络通信:在网络通信领域,Protobuf可以有效地减少网络传输的带宽消耗和延迟,同时支持跨平台和跨语言的数据交换。
序列化和反序列化:Protobuf可以对结构化数据进行序列化和反序列化,实现数据的存储和恢复。
在使用Protobuf时,需要先定义一个.proto文件来描述数据结构,然后使用Protobuf的编译器(protoc)将.proto文件编译成目标语言的源代码文件。在业务逻辑中,可以直接使用这些生成的代码文件来进行数据的序列化和反序列化操作。

grafana

Grafana是一款开源的、跨平台的可视化工具,主要用于时序数据的监控和可视化。以下是关于Grafana的一些主要特点和功能:

多数据源支持:Grafana支持多种数据源,包括Prometheus、Graphite、Elasticsearch、InfluxDB等,可以方便地集成和可视化不同数据源的指标数据。
丰富的可视化功能:Grafana提供了丰富的图表、图形和仪表板模板,可以实现各种数据的可视化,包括折线图、柱状图、饼图、仪表盘等。
灵活的查询语言:Grafana提供了灵活的查询语言,可以通过简单的表达式来查询和过滤数据,实现高效的数据分析和可视化。
实时监控和警报:Grafana可以实时监控指标数据,并通过警报功能实现实时的告警和通知,帮助用户及时发现和解决问题。
可定制性:Grafana提供了丰富的插件和扩展机制,用户可以根据自己的需求定制和扩展功能,实现个性化的数据可视化和监控方案。
Grafana在实际工作中有广泛的应用场景,例如:

监控和报警:Grafana可以与多种监控系统集成,如Prometheus、Elasticsearch等。通过配置监控数据的可视化图表和Table,用户可以实时了解系统的运行状态,及时发现潜在问题并进行报警。
数据分析:Grafana可以帮助分析师和数据科学家对数据进行探索和可视化。
此外,Grafana还支持多种部署模式,包括多组织支持,可以为一个单一的Grafana实例为多个潜在的不受信任的组织提供服务。用户也可以属于一个或多个组织,并通过角色来分配不同的权限。

Grafana的最新版本(如Grafana 10.0.1)还增加了新的功能和改进,如Dashboard/Alert文件夹嵌套等。

  • 如何在同一个panel中使用不同的纵轴
    • 设置 Left Y 和 Right Y
      • Percent (0.0-1.0)
      • time: YYYY-MM-DD HH
    • 设置 Series overrides
      • Alias or regex: /MyMetric.*/
        • Y-axis: 2

glog

https://github.com/google/glog

glog 是 Google 开发的一个 C++ 日志库,它基于 C++ 标准库开发,并提供了灵活、高效和可扩展的日志记录功能。glog 是从 Google 内部广泛使用的日志系统 logging 演进而来,并且被设计为易于在外部项目中使用。

以下是 glog 的一些主要特点和功能:

灵活的日志级别:支持 INFO、WARNING、ERROR 和 FATAL 等多个日志级别,并允许用户根据需要调整日志输出的详细程度。
线程安全:在多线程环境中,glog 能够确保日志记录的线程安全性,不会出现数据竞争或不一致的问题。
高性能:glog 采用了高效的日志记录机制,减少了日志记录对程序性能的影响。
可配置性:用户可以通过配置文件或命令行参数来配置 glog 的行为,如日志文件的存储位置、文件名格式、输出格式等。
可扩展性:glog 提供了扩展接口,允许用户自定义日志处理器,以满足特定项目的需求。
丰富的日志格式:支持多种日志输出格式,包括纯文本、JSON 等,方便用户根据不同的需求选择合适的格式。
FATAL 日志处理:当记录 FATAL 级别的日志时,glog 会自动终止程序运行,以防止程序在错误状态下继续执行。
易于集成:glog 以库的形式提供,可以轻松地集成到现有的 C++ 项目中。
要使用 glog,你需要将其源代码包含到你的项目中,并链接相应的库文件。然后,你可以在代码中通过调用 glog 提供的宏和函数来记录日志。例如,使用 LOG(INFO) << “This is an info message”; 来记录一条 INFO 级别的日志。

gtest

https://google.github.io/googletest/primer.html

gtest(Google Test)是 Google 开发的一个 C++ 测试框架,用于编写和运行单元测试。它提供了丰富的断言宏和测试管理工具,帮助开发者编写可维护、可扩展的测试代码。

gtest 的主要特点包括:

丰富的断言宏:gtest 提供了一系列断言宏,用于验证测试中的条件和期望是否成立。这些断言宏可以方便地检查变量值、函数返回值、数据结构等是否符合预期。
测试套件和测试用例:gtest 支持将多个相关的测试用例组织成测试套件(test suite),方便管理和运行。每个测试套件可以包含多个测试

  • 17
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EwenWanW

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值