Java Log Viewer日志查看器
工欲善其事必先利其器
在投奔怒海——一个Domino老程序猿眼里的Java开发我提到眼下所做的Java开发中遇到的大量日志之问题。
server控制台刷屏似地滚动,日志文件飞快地增长,debug的时候相关信息经常被例常日志淹没。在众多Logger滔滔不绝的输出下,要找出错误所在有时都挺费眼。日志的作用无可置疑,大型项目中日志海量产生也不少见。在曾经的Domino开发中,Dominoserver在产生日志方面相当克制,程序猿对日志的依赖程度也不高。
转换到Java开发,我用一直最喜爱的文本编辑器EditPlus肉搏了一段时间(假设用Windows自带的记事本。打开动辄十几甚至几十兆的日志都有些困难),越来越迫切感觉到须要更专业的武器。Java Log Viewer(日志查看器)是我想像中的这款工具的名称,具备的功能包含:
1. 能够手动重载日志。这样既能够防止自己主动跟踪日志影响当前关注的内容。又能够在须要时方便地加载最新的日志。
2. 对不同级别的日志项着色标注。
3. 可根据级别过滤日志。
4. 方便搜索。
上网一搜索便发现这是非常多人想要的。而且与非常多工具一样,问题已经不是缺乏。而是在众多候选者里选择。
OtrosLogViewer
根据Java Log Viewer这三个关键词的搜索结果和StackOverflow上的相应问题讨论。经过一番试用和比較【注1】,我确定OtrosLogViewer(http://code.google.com/p/otroslogviewer/)就是我所要的。
除了我原先设想的功能,OtrosLogViewer还提供了以下便利:
5. 以列表的形式分栏显示日志项。底部显示当前选中行的具体内容。而且表格的列可裁剪。
6. 能够根据时间、级别、Logger名称、线程等条件过滤日志。
7. 可迅速定位到上一条或下一条某个级别的日志。
8. 可标记日志,还能根据很多有用的条件自己主动标记。
9. 预设对多种格式日志的支持,而且有一个编辑器方便自己定义需解析的Log4j日志模式(pattern)。
不仅如此,软件的界面美观,操作友好。
演示
以下就以我所打交道的JBoss AS 7.1产生的日志来例示OtrosLogViewer的使用方法。
启动后界面
除了菜单条的基本命令。OtrosLogViewer的功能都由button或快捷菜单提供,操作上符合直觉。用户须要的功能都以便捷的方式出如今合适的地方。
它没有一般软件的设置界面,各种设置都结合在操作的视图里。
OtrosLogViewer有两组基本功能,Open XXX Log和Tail XXX Log,前者是用于打开一个精巧的日志文件。后者则可自己主动刷新(即tail跟踪的含义)一个live的日志文件。软件支持包含Log4j普通文本和XML等多种格式的解析,而且有相应的菜单命令。假设不确定日志採用的格式。OtrosLogViewer也能在打开日志时自己主动检測。
预设的Log4j日志模式为
%d{yyyy-MM-ddHH:mm:ss,SSS} %-5p [%t] %m%n
我所用的JBoss AS 7.1(从JBoss配置文件standalone.xml或者Web管理界面均可看到默认的日志处理器的模式为
%d{HH:mm:ss,SSS}%-5p [%c] (%t) %s%E%n
为了解析这种日志。能够调用菜单里的Tools -> Show Log4j pattern parser editor。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3RhcnJvdw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
将当中的相关初始配置改为
pattern=TIMESTAMP LEVEL [CLASS] (THREAD) MESSAGE
dateFormat=HH:mm:ss,SSS
在同一个界面里能够看到加载的日志文件。改动模式后能够随时測试解析结果。
成功后将模式保存为新的pattern文件。
软件的两组Open和Tail菜单里都会自己主动加入採用这个新模式的命令。
打开一个日志文件,全部的日志条目已经列表显示,时间列自己主动仅仅显示日期的时间部分。
不同级别的日志非常醒目地用不同颜色的图标区分。选中行日志的具体信息在以下的视图显示,包含错误堆栈和SOAP Message都有格式化和着色显示。用上十分钟,你就会发现仅仅这些阅读日志的效率大大提高。工具栏左边有搜索框。右边有button能够定位到上一条或下一条各种级别的日志。
每一条日志都能够做标记(Mark)或者加凝视(Note),主视图左边的工具视图能够设置和显示过滤和经常使用的自己主动标记功能。特别要说明的是列表视图上方的两个图标,第一个可切换是否自己主动读取新日志,第二个图标则控制在自己主动刷新的状态下列表中的当前行是否尾随读取的最新行。这两项功能结合起来,在读取live日志时十分方便。
最后再展示一下选中日志后快捷菜单里的丰富选项,过滤和删除都非常有用,能够高速排除无关的日志。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3RhcnJvdw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
注1:Apache的Chainsaw已经多年未更新,bug不少,性能不佳。
一个直接以Java Log Viewer命名的项目过于简单,且仅仅适用于java.util.logging生成的日志。
StackOverflow一个被人推荐的LogExpert在眼下的1.5版本号上有一个明显且重大的bug,不管是否设置跟踪,软件都会自己主动跳到最新的日志行。
Java Log Viewer日志查看器的更多相关文章
- SharePoint ULS Log Viewer 日志查看器
SharePoint ULS Log Viewer 日志查看器 项目描写叙述 这是一个Windows应用程序,更加轻松方便查看SharePoint ULS日志文件.支持筛选和简单的视图. 信息 这是一 ...
- 五:Edits Viewer离线日志查看器
离线日志查看器可以将二进制日志翻译成可读的文件(如XML),只有当hadoop集群停止时才能使用.输入文件支持的类型:XML和二进制.输出文件支持类型:XML 二进制 Stats(标准输出?) ...
- Moon转告给你一个比Log4net更好日志框架--TracerX Logger 及其对应的日志查看器
一.介绍 TracerX logger是一个易于上手,且拥有众多高级特性的.NET日志框架. 它能够发送输出结果到多目的地(循环文件.事件日志等....).它也能生成文本和二进制文件.它拥有一个强大的 ...
- 使用chrome控制台作为日志查看器
很多时候,我们需要查看日志的实时输出,这个时候往往只能选择控制台.我这里的日志框架是serilog,它有一个好处是控制台输出时可以高亮的形式显示其参数结构信息,如下图所示 但也存在许多不方便的地方: ...
- viewer 照片查看器
viewer 照片查看器 效果: api: https://github.com/fengyuanchen/viewerjs#methods npm: npm install viewerjs 使用: ...
- Ubuntu下的log日志查看器
1.lnav:Linux 下一个基于控制台的高级日志文件查看器 https://www.cnblogs.com/michealLang/p/9761886.html http://www.imooc. ...
- 【J2SE】java实现简单照片查看器
程序执行结果: project结构图: 程序代码: import java.awt.BorderLayout; import java.awt.FileDialog; import java.awt. ...
- .net core Blazor+自定义日志提供器实现实时日志查看器
场景 我们经常远程连接服务器去查看日志,比较麻烦,如果直接访问项目的某个页面就能实时查看日志就比较奈斯了,花了1天研究了下.net core 日志的原理,结合blazor实现了基本效果. 实现原理 自 ...
- Laravel 日志查看器 导入log-viewer扩展
1.修改配置文件 config\app.php中 'log'=>'daily' 日志文件是按天生成的 2.在项目目录中composer命令安装扩展:composer require arcan ...
随机推荐
- nfs挂载出错:mount.nfs: access denied by server while mounting
这个问题就是服务器不允许客户端去挂载,那么修改服务端的权限 $ sudo vi /etc/hosts.deny 文本末添加 ### NFS DAEMONS portmap: ALL lockd: AL ...
- html- 头部元素
一:HTML <head> 元素 <head> 元素是所有头部元素的容器.<head> 内的元素可包含脚本,指示浏览器在何处可以找到样式表,提供元信息,等等. 以下 ...
- python logging 日志
logging与print 区别,为什么需要logging? 在写脚本的过程中,为了调试程序,我们往往会写很多print打印输出以便用于验证,验证正确后往往会注释掉,一旦验证的地方比较多,再一一注释比 ...
- 排序与相关性(Sorting and Relevance)
本文翻译自Elasticsearch官方指南的Sorting and Relevance一章的第一节. 原文地址:http://www.elastic.co/guide/en/elasticsearc ...
- 洛谷P1038神经网络
传送门啦 一个拓扑排序的题,感觉题目好难懂... #include <iostream> #include <cstdio> #include <cstring> ...
- IntelliJ IDEA 建空包合并问题。
举例:我想在一个包下,创建2个空子包,这个时候,却无法再IDE里完成. 老是这样子,如果选中dff.sfsdf再右键 创建包的话,结局是再sfsdf下 又创建一个文件夹. 如果右键创建类的话,实际上在 ...
- 2016-2017-2 20155309南皓芯《java程序设计》第九周学习总结
教材内容介绍 一 JDBC简介 JDBC是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据库厂商则对接口进行操作,开发人员无须接触底层数据库驱动程序的差异性 JDBC标准分为两个部分:J ...
- 2015309南皓芯《Java程序设计》实验一(Java开发环境的熟悉)实验报告
一.实验内容及步骤 (一)使用JDK编译.运行简单的java程序 命令行下的程序开发 步骤一(新建文件夹):打开windows下的cmd → 输入cd Code命令进入Code目录 → 输入md 20 ...
- JS格式化时间并比较
JS格式化时间,然后进行比较.工作遇到的情况,然后网上找到的,记下来,下次用! </head> <body> <button onclick="myFuncti ...
- 更改MyEclipse中的src目录的浏览方式
看到这个标题,有人可能不会明白,这里先看张图: 右边的图就是我们要更改的样子,有的时候我们做项目需要看下目录的层次,于是使用了Navigator的那个视图,其实常用的这种包视图也可以变成那种样式. 这 ...