首页 > 其他分享 >【杂谈】后台日志该怎么打印

【杂谈】后台日志该怎么打印

时间:2024-12-17 13:53:06浏览次数:4  
标签:文件 记录 杂谈 信息 监控 后台 日志 ID


 

为什么要打印日志?

1. 监控系统运行情况

定期查看系统日志是了解服务是否正常运行的重要手段。日志为运维人员提供了实时监控系统状态、发现潜在问题的关键信息。

2. 排查问题(例如异常栈)

日志记录了详细的错误信息,特别是异常栈,有助于快速定位问题的根源。对于一些偶发的 Bug,日志是排查的唯一途径,尤其在生产环境中,日志显得尤为重要。

对于try-catch必须注意,无特殊情况,不能吃掉异常。

3. 性能监控

通过记录特定操作的耗时,可以实时监控系统性能,帮助我们及时发现性能瓶颈,并对耗时较长的操作进行优化。

Java 可使用StopWatch工具。

4. 网络攻击监控

日志中的安全信息对及时发现网络攻击至关重要。防火墙或其他安全组件会记录攻击行为,这有助于我们迅速应对,采取措施如增强保护机制或切换服务节点。


什么操作需要打印日志?

1. 用户操作

特别是 后台管理人员 的操作日志,需要详细记录。这不仅有助于了解系统的使用情况,还能为出现问题时提供追责依据。

例如,用户可能不承认自己执行了某些操作,而通过日志记录的操作时间、IP 地址、执行的具体任务等信息,可以作为有力证据。

2. 定时任务

记录定时任务的执行日志非常重要,它帮助我们确认任务是否按时运行、是否执行成功以及是否存在异常。

3. 外部请求

当系统与外部接口进行交互时,记录 请求参数 和 响应内容 是至关重要的。

通过这些日志,我们不仅能验证外部系统是否返回了正确的数据,还能确保我们的系统按照预期工作。


打印什么内容?

1. 必要的 ID 信息

日志中应包含 必要的标识符(如用户 ID、事务 ID 等),这些信息对于问题的快速定位至关重要。通过记录标识符,能够帮助我们追溯相关操作、识别操作的发起者,并在出现问题时迅速查找出问题源头。

2. 信息的可读性

仅仅记录 ID 信息可能缺乏直观性,给后续分析带来困难。因此,最好 同时记录相关的可读信息,如 username(用户名)和 user_id

例如,单独记录用户的 ID(如 user_id=12345)可能无法直接帮助我们理解哪个用户发生了问题,而通过同时记录 username(如 username=张三)则能使问题定位更加直观且易于处理。


主要注意什么?

1. 打印频率

日志打印频率过高会导致日志文件快速增长,占用大量磁盘空间,甚至影响系统性能。因此,应合理控制日志记录的频率,避免记录不必要的信息。

2. 敏感信息

日志中可能包含敏感信息(如用户密码、支付信息等)。虽然大部分技术人员不会主动访问这些信息,但日志泄露可能对公司声誉造成严重影响。为了防止敏感信息泄露,应避免记录此类数据。可以通过根据关键词匹配对象的 key,将敏感信息的 value 替换为 **** 来规避这一风险。


如何查看和使用日志?

1. 执行链路追踪

通过在日志中添加 TAG(标签),可以轻松地过滤和追踪某个操作的执行过程。

例如,可以为每个用户请求或业务操作分配唯一的 request ID 或 transaction ID,并将其作为 TAG 记录在日志中,这样就能在不同的系统和模块中追踪同一请求的执行轨迹。

2. 关键字搜索

日志文件通常包含大量信息,尤其是高并发环境下,日志量可能非常庞大。为了快速定位和排查问题,我们可以利用 关键字搜索 功能。

例如,如果系统报错时出现了异常信息 NullPointerException,我们可以在日志中搜索该关键字,快速定位到报错的具体位置,进而缩小排查范围,快速解决问题。

或者在人工扫描的时候,可以搜索Exception或error,快速过滤异常信息,查看是否存在不符合预期的异常。


文件日志还是数据库日志?

  • 运行日志:一般情况下,运行日志直接写入文件。文件日志记录了系统的整体运行状态,便于进行监控和性能调优。

  • 操作日志:对于用户操作、业务处理等较高层次的日志,建议写入数据库。这样不仅方便检索和分析,还可以生成报告,并有助于长期保存和审计。


日志文件为什么要分片?如何分片?

日志文件不能无限增长,否则会影响查看和管理。例如,查看特定日期的日志时,如果所有日志都集中在一个文件中,文件会变得庞大,难以阅读,打开文件还可能出现卡顿。

此外,删除旧日志时也会变得困难,因为文件锁定会影响新日志的写入。

日志分片,也称为日志轮转,通常基于时间(如按天、按月)或文件大小来分片。最常见的方式是结合日期和序号进行分片:当文件达到一定大小时,创建一个新的日志文件并按序号命名。


海量日志如何监控?

对于单个简单应用,日志量相对较少,可以直接下载并通过人工检查。但对于微服务架构的复杂系统,日志量巨大且分散,人工扫描显然不现实。

  • 集中日志管理:可以使用日志收集工具(如 ELK Stack)将日志集中存储和管理。这样,所有微服务的日志都会被统一收集,便于分析和监控。

  • 日志收集的必要性:为什么不在一开始就直接将日志写入中央存储?因为这可能导致单点故障,并可能增加网络延迟。更好的做法是,服务先将日志写入本地文件,然后通过专门的收集器(如 Filebeat、Logstash)进行处理和传输。

  • 使用 Kafka 监控日志:对于高频率的日志数据,可以将日志传输到 Kafka,然后由专门的消费者应用进行实时消费和分析。消费者可以检查日志内容,识别出严重错误或异常情况,并及时告警(如通过邮件通知运维人员)。

  • 监控服务独立性:为什么不建议直接在服务代码中嵌入日志监控逻辑?因为监控服务应该与应用服务分离,这样便于更新、扩展,并遵循解耦设计原则。独立的监控服务可以灵活配置和管理。


总结

日志是任何系统中不可或缺的组成部分,合理的日志记录策略不仅能帮助开发人员高效排查问题,还能帮助运维团队监控系统健康、优化性能并确保安全性。在日志设计时,我们应特别关注内容的可读性、敏感信息的保护,以及合理控制日志记录频率。通过有效的日志管理、分析和告警机制,我们可以更好地保障系统的稳定性和安全性。

标签:文件,记录,杂谈,信息,监控,后台,日志,ID
From: https://www.cnblogs.com/sexintercourse/p/18612228

相关文章

  • MongoDB|TOMCAT定时切割日志文件的脚本
    MongoDB用过一段时间后,日志较大,需要定时进行日志切割。一、切割bash:splitlogmongo.sh#!/bin/bashlog_dir="/home/mongodb/logs"file_name="/home/mongodb/logs/mongodb.log"if[!-d$log_dir];thenmkdir-p$log_dirfiif[!-f$file_name];thentouch$file_name......
  • vue2后台管理
    1.前言后台管理系统包含几个功能:权限管理,菜单管理,CRUD模板等权限管理不仅仅体现在菜单的渲染,还涉及到动态路由2.动态路由系统页面分为2种:管理页面(带左侧和顶部的导航,主内容取才是真正的内容),和全屏页面全屏页面:使用一级路由进行注册,直接渲染该页面组件管理页面:使用二级......
  • 网站关键词在哪里修改,如何在网站后台管理系统中修改关键词
    网站关键词是搜索引擎优化(SEO)的重要组成部分,合理设置关键词可以提高网站的搜索排名。如果您需要在网站后台管理系统中修改关键词,以下是详细步骤:登录后台管理系统:使用管理员账号登录网站的后台管理系统。导航到SEO设置或元数据管理界面。进入SEO设置:在后台管理界面中,找......
  • 修改网站logo在哪里修改,如何在网站后台修改logo
    如何在网站后台修改logo登录后台管理:首先,使用管理员账号登录网站的后台管理界面。通常在网站的底部或顶部导航栏可以找到登录入口。导航至外观设置:登录后台管理界面后,在左侧菜单栏中找到“外观设置”、“主题设置”或类似选项。选择logo设置:在外观设置页面中,找到“logo设置”......
  • 24.10.31 补充日志分析以及打包压缩
    uniq作用:去重,一般与sort搭配使用,单用uniq,是合并相邻两行相同内容参数:-c#统计重复行的次数eg:[root@oldboyedu~]#catuniq.txtoldboylidaolidaolidaolidaooldboyoldboylidaooldboypldboy[root@oldboyedu~]#uniquniq.txtoldboylidaooldboylidaooldboypld......
  • 【杂谈】如何选择:Session 还是 JWT?
    服务端如何验证客户端已经登录?在用户成功登录后,服务端会发放一个凭证。之后,客户端的每次请求都需要携带该凭证,服务端通过验证凭证的有效性来判断用户是否已登录,并处理请求。以下是Session和JWT在这方面的不同之处:1.凭证的内容是什么?Session:凭证是一个简单的ID字符串,用......
  • 网站公司信息怎么修改,如何在网站后台管理系统中修改公司信息
    在网站后台管理系统中修改公司信息是一个常见的维护任务。以下是具体步骤:登录后台:使用管理员账号登录网站的后台管理系统。导航到公司信息管理:在后台菜单中,找到“公司信息”或“关于我们”模块。编辑公司信息:在编辑页面中,可以修改公司的基本信息,如公司名称、地址......
  • PyQt5 使用结合Logging 在 QPlainTextEdit/QTextBrowser 上显示日志信息
    PyQt5使用结合Logging在QPlainTextEdit/QTextBrowser上显示日志信息本文演示PyQt5如何与Python的标准库Logging结合,然后输出日志信息到如:QPlainTextEditQTextBrowser上代码结构本文中全部代码全在test_QPlainTextEdit_Log.py这一个文件中编码,步骤中有变动的地方会注......
  • 如何排查和解决易优CMS后台样式错乱和文章详情页无法打开的问题?
    针对易优CMS后台样式错乱和文章详情页无法打开的问题,可以按照以下步骤进行排查和解决:检查服务器防火墙设置:登录宝塔面板或其他服务器管理工具,检查防火墙设置,确保没有拦截包含特定单词的URL。例如,检查是否拦截了 login 等关键词,如果有拦截规则,将其删除或修改。升级易优C......
  • PbootCMS后台登录验证码看不清怎么办?
    在使用PbootCMS时,有时会遇到后台登录验证码看不清的问题。这通常是由于PHP版本不兼容导致的。以下是如何解决这一问题的详细步骤和注意事项。问题原因分析:PHP版本不支持:验证码看不清的问题通常是由于服务器上的PHP版本不支持PbootCMS的验证码生成功能。不同版本的PHP对某些函......