在软件开发的复杂世界中,每一行代码都像是一道数学题。如果说代码中方法的返回是解题得出的答案,那么Log日志则是解题过程,如果做题时答案不对,那么就要从解题过程一步一步推解做题流程。
从此看出Log日志是帮助开发人员寻找bug起因的工具。
文章导航
一、不同的日志框架、工具及数据库有哪些?
Java主要使用Log4j,安卓使用Logger,Go使用标准库log包。
管理log的工具主要使用ELK stack,Graylog等日志系统。
存储log的工具主要以Elasticsearch为主,因为Elasticsearch的全文搜索比较强大,并且是可的扩展分布式架构,比较适合关键词搜索。
除了Elasticsearch作为log存储的数据库,常用的还有Mongo(比较适合Json形式log存储和查询,存储结构比较自由), ClickHouse (列式数据库适合实时分析), InfluxDB (时序数据库,比较适合和时间相关的数据,金融和物联网方面用的比较多)
二、一般访问日志组成是什么?
假设一个Web服务器的访问日志,它可能看起来像这样:
2024-09-22T15:04:05Z INFO web-server [192.0.2.1] "GET /index.html HTTP/1.1" 200 1283 "-" "Mozilla/5.0"
分解上述日志条目:
- 时间戳:
2024-09-22T15:04:05Z
表示这条日志记录的时间。 - 日志级别:
INFO
表示这是一个信息性消息,通常表示正常的操作。 - 源:
web-server
表示日志来自Web服务器。 - 主机名或IP地址:
192.0.2.1
是发起请求的客户端IP地址。 - 消息:
"GET /index.html HTTP/1.1"
是客户端发起的GET请求。 - 状态码:
200
表示请求已成功处理。 - 响应大小:
1283
是响应的字节数。 - 用户代理:
"Mozilla/5.0"
是发起请求的客户端浏览器标识。
三、日志级别是如何标记日志特点的
一般日志级别有:
- INFO(记录性的提示性的正常信息),
- DEBUG(开发时的调试信息),ERROR(某些功能失效的错误信息),
- WARN(配置或者性能上可能影响程序的警告信息),
- FATAL(导致程序终止的崩溃信息)
其余的级别不会太常用,但是也表达了日志的特点。
四、后端日志如何产生
后端日志一般先存在Linux机器里的XXX.log文件里。在Linux运行后端程序时,不做选择就会直接打印到命令行里,经过配置日志位置后将会存到XXX.log文件里。
例如下面就是在启动Minecraft服务器后,日志将会直接打印在命令行中,加上关于日志输出位置的配置参数后启动,日志将会收集到日志文件里,并且让服务在后台运行。
五、在Linux里搜索日志的三种主要方法
1.tail:
实时查看日志
tail -f 文件地址
2.grep:
搜索关键词查看日志文件某行
grep “关键词” 文件地址
3.先tail再grep:
从实时日志中搜索某关键词
tail -f 文件地址 |grep “关键词”
在生产环境中,切忌使用grep搜索全部日志,可能会因为日志过多导致搜索日志占用Linux资源。建议生产环境使用日志系统把日志存储后进行查询或者展示。
六、如何避免Log漏洞造成损失?
在2021年11月24日,Log4j2被发现有漏洞,利用JNDI的功能触发远程代码执行导致影响后端服务。当时出现了很多使用JAVA开发的服务出现问题,很多服务器因为使用了Log4j2导致机器变成别人的矿机。很多企业连夜修补漏洞,可见基础设施也需要掌握在自己手中,不能完全信任开源的工具,需要在全面的评估下才能使用可信的开源工具。而开发安全需要开发者全面的学习才能考虑到系统方方面面可以防住外界攻击。
而晓多公司从技术上优选稳定技术,并且在稳定中保持对新事务的探索,保证在创新同时对安全保持敬畏之心,成功避免了上述危机。
结语
Log日志在软件开发中扮演着举足轻重的角色。它不仅帮助我们记录和追踪软件的运行状态,更是我们寻找问题、优化性能的重要工具。随着技术的不断发展,日志管理系统和工具也日益丰富和完善,为开发人员提供了更加便捷、高效的日志处理手段。
然而,正如我们所看到的,即便是广泛使用的开源日志框架也可能存在安全隐患。因此,在选择和使用日志工具时,我们需要保持警惕,进行全面的评估,确保所选工具的稳定性和安全性。只有这样,我们才能在享受技术便利的同时,有效避免潜在的风险和损失。
延展阅读:
2024双11淘宝3000亿国家补贴怎么领?成都家电以旧换新线上线下使用入口在哪里?
企业微信客服会话服务质量如何考核?如何统一评估私域公域客服会话服务水平?
抖音电商内容创作者2024双11怎么抢占流量扶持资格?官方流量掘金计划如何参加?
咨询方案 获取更多方案详情