[Java的日志] P1: 测井软件开发中的重要性

从博客东黄长发发表的文章, 是作者的同意.

大家好. 这些天来,忙过, 争取新的永远坐在写作. 今天,我将分享他们在软件开发相关的日志记录问题的经验.

什么是日志?

来记录,就必须有很多人都知道,这是一个工作跟踪过程的 1 代码/功能/应用, 则或记录发生错误 (如果有)
所有主要的系统,如系统管理员数据库记录所有用户的细节公开执行查询 什么是上会议什么时间. 还有微软, 网页浏览器, 土砖,...包含日志功能,记录和显示窗发送报告为软件开发人员在发生错误时.

Kaº¿tquả£NHhìnháº发送报告窗口

登录办?

因此,跟踪完成后,做? 当然,服务 追踪 已经.
如果你登录错误, 当程序错误 你可以看到什么错误, 在任何代码,很容易找到 操作计划. 在生产环境中的程序故障很多情况下 无法重现 再次, 这时候,需要登录到查找原因.
如果您录制 用户登录 申请, 你会知道用户不上 访问 应用和 操作 什么, 从中发现的恶意破坏案件的肇事者.
如果登录 复杂的代码, 该 后台进程, 你就会知道 状态 của tiến trình đó đang chạy như thế nào, biết được tốc độ xử lý của các nghiệp vụ phức tạp, có cơ sở để tìm ra các đoạn code gây cao tải cho hệ thống.
Và rất nhiều lợi ích khác 🙂

有记录的某些方面?

  • Print ra màn hình
  • Ghi ra file lưu trên ổ cứng
  • Kết nối ftp đến server khác để lưu file và truyền file sang server lưu log, hoặc gửi qua service, email đến nhà phát triển.
  • Insert log vào 1 bảng trong cơ sở dữ liệu

由什么记录?

  • 打印屏幕命令
  • 使用log4j的图书馆, SLF4J在Java
  • 插入由执行SQL或ORM如Hibernate登录到数据库,...
  • 构建自己的日志模块

的东西记录?

得分超过 还不错, 记录也将做 多余的日志 难以控制和跟踪日志, 存储成本 主办, 或洗去所需要的日志
也不能 进球太少 导致 没有记录 处理
足够的日志记录 然后我们提供了多个位置如下:

  • 在块 捕获异常, 需要登录找出 位置缺陷 在出现问题时的应用.
  • 功能用途, 能 造成高负荷 系统, 用于记录所需要的重要功能 定期监测, 确保系统运行稳定.
  • 后台进程, 最低需要记录每个时间 开始和结束 与总在一起 处理时间 要知道进程按计划运行奠定与否, 处理速度快或慢. 随着大型长期运行过程中有很多步骤应随时登录 启动或完成 1 步骤 监测过程在步骤被处理, 在步骤错误或回滚. 如果有必要,它可以记录信息,如当前服务器状态 内存, 中央处理器, 磁盘IO,... 高系统负载的基础风险评估, 预定的计划,以限制很大的进展过程,并同时运行.
  • 在复杂的业务很多加工步骤也应该记录 逐渐 类似的过程. 或代码 潜在的风险 如不是太重要功能是通过暂时还没有处理,以找到最佳方案, 或时间释放所述折叠应登录监控逻辑异常或不办理瞬间.
  • 当登录 与其他系统进行通信. 那里 2 沟通方式是其他系统的API /公共服务 连接到, 或片段称为其它系统的API /服务, 或任何其他连接到通过编写代码部署. 都需要登录一半 基本信息 如: 链接火, 路径/加工方法, 通讯请求, 简讯响应, 处理时间. 而且最好是登录到 £数据库 需要的最方便的跟踪日志时. 由于系统之间的整合往往发生很多问题, 如果没有特定的日志将很难被识别任何错误, 导致一种情况 对方并没有解决问题.
  • 还有些系统或 重要的功能, 需要特定的日志 冲击变化数据数据库. 插入/更新/删除/选择记录任何, 变更前后的数据. 为了控制对数据的影响,并在必要时回滚数据.
  • 或服务器上的问题的情况下, 不再出现 当地, 也没有在服务器上调试,只有额外的日志记录,以涉嫌位置查找故障

如何记录?

当登录需要确保一些 原则 如下:
- 如果错误日志,应用程序仍然正常运行. 虽然他的一部分,涉及许多问题表示记录的重要性, 但主要目标仍然只有利于系统的操作, 也 最终用户 然后 什么没有意义. 所以,如果错误日志的错误,做初级服务应该最好不要记录.
- 日志处理时间不会影响处理时间的专业. 无论是注销或文件插入数据库或存储在任何地方,它会 1 的时间来处理, 但尽管只需要几分钟或几毫秒,它应该也不会让它影响到企业的总加工时间. 由于遇到大贸易业务连续性的时候是要付出代价的时间记录乘以不小
从他的一些原则 忠告 分别登录时:
- 始终捕获所有异常 当嵌入的软件功能的业务代码的日志, 确保没有错误,可能从处理扔注销主要服务.
- 异步日志 平等 1 其他进程, 最简单的是在运行它 1 自己的线程.
+ 避免使用命令 System.out.print (或类似) 打印注销屏幕丝网印刷是非常缓慢地进行连续操作
+ 避免 e.printStackTrace() 打印注销屏幕, 也因上
+ 应 使用日志库异步 Log4j的java的. 通过log4j的展望仍然只是 1 命令 logger.infor("Nội dung")但实际上里面既 1 处理系统. 内容应该记录将作为submit上 1 队列, 此外,将有 1 后台进程 扫描队列检索记录的内容, 这样可以确保记录不会影响处理时间的专业.

监控日志?

现在,软件已,下一个日志用于记录数据监控系统的任务. 还有通过日志监控系统的各种方式
- 打开手日志文件, 手动输入选择日志表, 和 登录用肉眼读取信息 这就要求管理者必须具备的软件和数据库知识以及获取大部分资源上面查看日志信息. 这是即时的可读性日志开发环境相当普遍, 紧凑的快.
- 兼论环境 生产, 监督员可能不具备的软件知识, 他们眼睁睁地让别人活系统的技术团队,当问题. 所以这一次的软件需要更多的 监控功能 一个直观的系统 图像, 颜色, 要被显示为具有行和列显式的表数据信息. 要做到这一点,有很多治疗
+ 集成 系统 疏忽 可作为日志 JMX远程, Java剖析, Nagios的, 春季启动器 或作为一个完整的集 Logstash (实时数据收集日志) + ElasticSearch / Solr的 (数据分析日志, 全文检索迅速进入最佳) + Kibana (界面显示信息的日志数据 1 从视觉ElasticSearch)

Kaº¿tquáºáºhình££NH为kibana elasticsearch logstash

自主建造工具 (取决于需求简单或复杂) 读取数据记录文件, 不建议分析和显示这样的接口上的警告,因为许多系统都可以上面做得很好, 高相容性,是免费

通过这篇文章,你就掌握了基础知识重要性 在软件开发日志, 有的原则需要注意登录时. 在以后的文章中,我将提出具体的实例来整合 记录基本标准 最软件.