日志问题

对于这些同学提出的问题, 以下回答均为个人经验之谈, 可能会有更好的解决方案, 不作标准答案;

程序之路任重道远,望坚持学习,少年易老学难成,一寸光阴不可轻


Q1:多台服务器上,运行期间会产生大量的错误日志,如何监控错误?

1,多台服务器  

以web项目举例,问题的核心并不是'服务器'的量级,而且在多台服务器上是否运行的是"同一项目".大部分情况,多台服务器是为了减轻服务端的压力存在的,这时多台服务器共同执行同一个Task,其日志输出路径是以日为单位的绝对路径,所以找到问题并不是很费力的.

打个比方,一个Django框架的web项目,其中也存在爬虫程序,日志文件情况如下:



开发服务器日志文件

所以,web项目用多台服务器,并不会出现,具体哪台服务器出现了报错情况,因为在代码,环境,部署完全一致的情况下,出现了WARNING,可能是你代码有bug,也可能是服务器上某个部署存在问题,统一修改即可解决.

如果是爬虫项目,多台服务器可能运行的项目也不一样.那么思路也是一样的,要区分哪台服务器上的程序出现问题了.直接按照当时输出日志时候的路径,找到相应的文件位置即可.

(日志输入位置要在项目config中配置好)


日志配置(开发服务器,一般生产环境应改为info)

比如A服务器 输出路径为../log/serverA/today/0727test.log

B ../log/serverB/today/0727test.log

...

2运行期间会产生大量的错误日志

一个项目的运行,一定避免不了会输出大量的信息,以供程序员参考:

日志等级由低到高:debug<info<warn<Error<Fatal;

生产模式下,最低等级为info;

一般情况下:输出info的信息,均为你在代码中想要看到目前结果的地方进行日志打印,此处看你的习惯,和信息的重要性;(关键处打印日志是一个程序员良好的习惯)


代码中打印日志

warn信息一般是不影响系统正常运行的警告信息,一般情况,此类也是可以写代码的时候,特定场景下添加警告信息(一般不会用),大部分情况是系统自动生成该类错误.


warn和error错误信息

error才是你真正需要关心的问题,因为此类错误会直接导致系统无法正常运行,或者直接崩溃.

处理方式当然是看解释器的报错信息了..

一般出现问题,第一反应应该是,服务器上把日志下载到本地.用notepad++等文本软件打开,查找关键字为error的,具体问题具体解决即可.

3如何监控错误?

这个问题的核心是:你想主动让程序告知你发生了什么,还是等到出现问题,直接翻看日志找到问题.

出现error,给你发个短信,或者邮件,这个应该不难吧..定时任务或者异步处理都可以的..具体解决方案,网上有很多监控方式,可针对自己的项目进行学习即可..

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,253评论 19 139
  • 一,情况 1,发现问题 今天日常登录内部ERP系统,发现系统不能登录。具体表现为:输入用户名和密码后,点击登录,系...
    千幻流光阅读 3,112评论 0 0
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,098评论 2 89
  • error code(错误代码)=0是操作成功完成。error code(错误代码)=1是功能错误。error c...
    Heikki_阅读 3,469评论 1 9
  • 美好的,不止爱情 据说最好的爱情,不是一下把你感动晕倒。而是细水长流的把你宠坏…… 早已经过了山盟海誓的年华,已经...
    琳小袁阅读 526评论 6 2