服务器日志记录_5种改善服务器日志记录的技术

服务器日志记录

在最近的时间里,我们已经看到了许多工具可以帮助您理解日志。 开源项目(例如Scribe和LogStash),内部部署工具(例如Splunk)以及托管服务(例如SumoLogic和PaperTrail)。 这些都可以帮助您将大量日志数据减少为更有意义的内容。

它们共有一个共同点。 它们都取决于您实际放入日志中的数据。 正确地获取数据质量和数量的任务就落在了您身上。 考虑到这一点,在记录日志时,您应该经常注意以下五件事:

1.您好我的(线程)名称是..

Thread name属性是Java最被低估的方法之一,因为它主要是描述性的。 它发挥最大作用的地方是多线程日志记录。 大多数日志记录框架将自动记录当前线程的名称。 但是,这通常看起来像“ http-nio-8080-exec-3”-由线程池或容器分配的名称。

线程名称在您的日志中是主要房地产,因此您需要确保正确使用它。 这意味着为它分配详细的上下文,例如Servlet或立即完成的任务,以及一些动态上下文,例如用户或消息ID。

因此,代码的入口应以以下内容开头:

Thread.currentThread().setName(MyTask.class.getName() + “: “+ message.getID());

2.分布式标识符

在SOA或消息驱动的体系结构中,任务或请求的执行可能跨越多台机器。 当处理失败时,连接机器之间的点及其状态将是了解发生了什么的关键。

为了使日志分析器在计算机之间对相关日志消息进行分组,您需要为它们提供唯一的ID,作为每个日志消息的一部分,通过它们它们可以执行此操作。 这意味着,系统中的每个入站操作都应具有唯一的ID,该ID随其一起运行直到完成。

诸如用户ID之类的永久性标识符可能不是很好的工具,因为一个用户可能对他进行了多项操作,这将使隔离更加困难。 UUID(尽管很长)在这里是一个不错的选择,也可以加载到线程名称或专用TLS中。

不要记录+循环。

通常,您会看到一段紧缩的代码运行并执行日志操作。 基本假设是该代码将运行有限的次数。

事情进行得很好时,可能就是这种情况。 但是,当代码意外输入时,循环可能不会中断 。 在那种情况下,您不仅要处理无限循环,还要处理将无限数量的数据写入磁盘或网络的代码。

留给自己的设备,这可能会使服务器或整个群集停机。

如果可能,请勿在紧密循环中记录。 捕获错误时尤其如此。

void readData {while (hasNext()) {try {readData();}catch (Exception e) {// this isn’t recommend - you can catch, but log outside the looplogger.error("error reading " X + " from " Y, e);}}
}

4.空手

韦斯特洛斯(Westeros)将长城作为其最后一道防线(可以帮助他们的胖子)。 您有Thread.uncaughtExcceptionHandlers 。 因此,请确保使用它们。 如果您没有安装这样的处理程序,则可能会冒着将上下文扔到以太程序中的风险,而上下文却很少,而且对是否以及在何处最终记录日志的控制也很少。

请注意,即使在未捕获的异常处理程序中,该处理程序也无法访问终止线程中的变量,您仍然可以获得对Thread对象的引用。 如果您坚持第1步,您仍然会获得有意义的线索。 getName ()日志可为您提供更多上下文。

5.接听外部电话

每当您进行离开JVM的API调用时,发生异常的机会都会大大增加。 这包括Web服务,Http,DB,文件,OS或任何其他JNI调用。 将每个呼叫视为爆炸(最有可能在某一时刻发生)。

在大多数情况下,API调用失败的原因与您提供给他们的意外输入有关。 在日志中为您提供这些值是解决问题的关键部分。

try {return s3client.generatePresignedUrl(request);
}
catch (Exception e) {String err = String.format("Error generating request: %s bucket: %s key: %s. method: %s", request, bucket, path, method);log.error(err, e); //you can also throw a nested exception here with err instead.
}

使用Takipi进行服务器调试

Takipi旨在通过使您的日志更智能,信息更丰富来使服务器调试更好。 以下3个功能可以在下次调试服务器时使您的生活更轻松:

  1. 服务器调试 。 当Takipi在JVM中检测到异常或错误时,它将收集引起该异常的代码和变量。 最终结果是,对于应用程序中的每个错误,您都可以直接跳入在该计算机上执行的源代码,并查看引起该错误的所有变量值–当前的局部变量,对象,数组和字符串错误。

    塔基皮1号

  2. 日志集成。 Takipi会为每个日志错误自动添加一个微小的调试超链接,因此您可以使用它直接跳转到导致该错误的实际源代码和变量值中。

    takipi2

  3. 分布式调试 。 如果调用失败的代码是从另一台运行Takipi的计算机上进行的,则您将在分布式调用链中看到源代码和变量值。 因此,如果机器A调用B,而机器C调用失败,则您将看到之间的整个链的代码和变量。

    Takipi3

单击此处尝试塔基皮

翻译自: https://www.javacodegeeks.com/2014/03/5-techniques-to-improve-your-server-logging.html

服务器日志记录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/343686.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【渝粤教育】 国家开放大学2020年春季 1192高层建筑施工 参考试题

试卷代号:1248 2 0 2 0年春季学期期末统一考试 公共部门人力资源管理 试题 2020年7月 一、不定项选择题(每题2分,共10分,每题至少有一个正确答案,多 选或少选都不能得分) 1-非正式的行政人事制度安排就是人…

【渝粤教育】 国家开放大学2020年春季 1260软件工程 参考试题

试卷代号:1283 座位号口口 2 0 2 0年春季学期期末统一考试 社会保障学(本) 试题 2020年7月 一、单项选择题(在各题的备选答案中,只有1项是正确的,请将正确答案的序号,填写在题中或题后的括号内。…

#让人物运动_篮球人物之黄云龙,淡泊名利的他是篮球运动员中的楷模,你可记得...

阅读本文前,请您先点击上面的“蓝色字体”,再点击“关注”,这样您就可以继续免费收到最新文章了。 说起CBA联赛&#xff…

HDMI光端机基本知识及相关品牌介绍

因技术的提高,光纤价格的降低使它在各个领域得到很好的应用,因此各个光端机的厂家就好比是雨后春笋般发展起来。但是这里的厂家大部分技术并不是完全成熟,开发新技术需要耗资和人力、物力等,这就产生厂家多是中小企业,各品牌也先后出现。但是…

html 并集选择器,CSS并集选择器

CSS并集选择器也叫群选择器,是由多个选择器通过逗号连接在一起的,这些选择器分别是:标签选择器、类选择器或id选择器等。在声明各种CSS选择器时,如果某些选择器的风格完全相同,或者部分相同,便可以利用并集…

线程,代码和数据–多线程Java程序实际运行的方式

有些事情是您在学术或培训班上没有学到的,经过几年的工作经验后才逐渐了解,然后才意识到,这是非常基本的事情,我为什么错过了这么多年。 了解多线程Java程序的执行方式就是其中之一。 您肯定已经听说过线程,如何启动线…

【渝粤教育】 国家开放大学2020年春季 1306社会政策 参考试题

试卷代号:1309 2 0 2 0年春季学期期末统一考试 中国现代文学专题 试题(开卷) 2020年7月 一、单项选择题(每题1分,共10分。要求:将正确答案的序号填在括号内。每题只有一个正确答案,错选或多选均…

HDMI光端机是什么?hdmi光端机产品参数及性能特点介绍

HDMI光端机就是光信号传输的终端设备。在广泛领域应用中,往往需要把HDMI信号源输送远处进行处理。最为突出的问题有:远处接收到的信号出现偏色、模糊,信号产生重影和拖尾及网纹干扰。(多模)/(单模)HDMI视频光端机发送器和相应的光收发系列产品…

【渝粤教育】 国家开放大学2020年春季 1326社区护理学(本) 参考试题

试卷代号:1333 座位号口口 2 0 2 0年春季学期期末统一考试 古代诗歌散文专题 试题(开卷) 2020年7月 一、选择题(每题1分,共10分) 1.著名的乐府诗《木兰诗》属于( )。 A.汉乐府 B&…

html中的保存功能代码怎么写,java保存html代码怎么写

java保存html代码怎么写[2021-01-31 03:29:24] 简介:php去除nbsp的方法:首先创建一个PHP代码示例文件;然后通过“preg_replace("/(\s|\&nbsp\;| |\xc2\xa0)/", " ", strip_tags($val));”方法去除所有nbsp即可。推荐&#xff…

【渝粤教育】 国家开放大学2020年春季 1373特殊教育概论 参考试题

试卷代号:1376 座位号□□ 2 0 2 0年春季学期期末统一考试 机械制造装备及设计 试题 2020年7月 一、单项选择题(从所给的四个选项中,找出你认为是正确的答案,将其编号填入括号内。每小题3分,共30分) 1&…

hdmi光端机运用于多媒体信息发布系统案例介绍

杭州飞畅科技HDMI光端机运用于多媒体信息发布等应用系统中,能将HDMI音视频信号进行远距离传输。用普通的HDMI电缆长距离传输,会出现信号差,容易受干扰,显示出来的图像会出现模糊、拖尾、分色等现象。如果传输距离短,就…

西门子实数转整数_西门子PLC指令全都翻译过来了!

点击蓝字关注我们有时我们关注的公众号消息比较多,错过了一些自己喜欢的消息,不能及时看到工控论坛的推送,我们可以给公众号加星标或置顶。那如何星标置顶呢?【打开一篇工控论坛公众号的文章,点击文章标题下方的蓝色字…

【渝粤教育】 国家开放大学2020年春季 1444药理学(本) 参考试题

试卷代号:1474 2 0 2 0年春季学期期末统一考试 临床医学概论(本) 试题 2020年7月 一、单项选择题(每题2分,共50分) 1.引起发热的病因甚多,临床上最常见的病因是( )。 A.感…

鸿蒙os怎么还没发布,关于鸿蒙OS系统!小米为何从支持到“失声”?看看中兴就知道了!...

鸿蒙OS在还没有正式召开发布会的时候,大家就一直很关注友商们对于鸿蒙OS的态度。此前中兴就表过态,他们不会考虑鸿蒙OS的系统,因为中兴自己有这一方面的规划。而在鸿蒙发布之前,除了中兴是正式的官方发出了相关的态度之外&#xf…

js webapp://_Project Student:维护Webapp(只读)

js webapp://这是Project Student的一部分。 其他职位包括具有Jersey的 Web服务 客户端,具有Jersey的 Web服务服务器 , 业务层 , 具有Spring数据的持久性 ,分片集成测试数据 , Webservice集成和JPA标准查询 。 当我开…

【渝粤教育】 国家开放大学2020年春季 2071美学与美育 参考试题

试卷代号:2083 2 0 2 0年春季学期期末统一考试 信息技术与教育技术(2) 试题(开卷) 2020年7月 一、单选题(每小题4分,共6小题.24分) 1.下面哪一项不是程序教学法的特点?( &#xff09…

光端机安装调试需注意的几大因素

安装光端机时要做好现场的防护措施,防潮、防水、防尘,同时注意现场的实际操作,必须配备合适的光纤使用,不能使用残缺故障的光纤,如果不匹配,则会严重影响光端机传输质量,涉及光缆熔接时&#xf…

catia钣金根据线段折弯_钣金折弯加工注意事项有哪些?钣金折弯要点介绍

钣金折弯时金属加工中常用到的一道工序,它的用途十分广泛,是通过折弯机把一种板材加工成各种角度,加上数控功能后,钣金折弯有效地提高了加工精度和生产效率。然而,在钣金折弯过程中存在着一些注意事项和要点&#xff0…

【渝粤教育】 国家开放大学2020年春季 2136管理会计 参考试题

试卷代号:2180 座位号□□ 2 0 2 0年春季学期期末统一考试 办公室管理 试题 2020年7月 一、单项选择题(请将正确答案的字母序号填在括号内,每小题2分, 共10分) 1.办公室管理的第一要义是( )。 A&#xff0e…