对于这些同学提出的问题, 以下回答均为个人经验之谈, 可能会有更好的解决方案, 不作标准答案;
程序之路任重道远,望坚持学习,少年易老学难成,一寸光阴不可轻
Q1:多台服务器上,运行期间会产生大量的错误日志,如何监控错误?
1,多台服务器
以web项目举例,问题的核心并不是'服务器'的量级,而且在多台服务器上是否运行的是"同一项目".大部分情况,多台服务器是为了减轻服务端的压力存在的,这时多台服务器共同执行同一个Task,其日志输出路径是以日为单位的绝对路径,所以找到问题并不是很费力的.
打个比方,一个Django框架的web项目,其中也存在爬虫程序,日志文件情况如下:
所以,web项目用多台服务器,并不会出现,具体哪台服务器出现了报错情况,因为在代码,环境,部署完全一致的情况下,出现了WARNING,可能是你代码有bug,也可能是服务器上某个部署存在问题,统一修改即可解决.
如果是爬虫项目,多台服务器可能运行的项目也不一样.那么思路也是一样的,要区分哪台服务器上的程序出现问题了.直接按照当时输出日志时候的路径,找到相应的文件位置即可.
(日志输入位置要在项目config中配置好)
比如A服务器 输出路径为../log/serverA/today/0727test.log
B ../log/serverB/today/0727test.log
...
2运行期间会产生大量的错误日志
一个项目的运行,一定避免不了会输出大量的信息,以供程序员参考:
日志等级由低到高:debug<info<warn<Error<Fatal;
生产模式下,最低等级为info;
一般情况下:输出info的信息,均为你在代码中想要看到目前结果的地方进行日志打印,此处看你的习惯,和信息的重要性;(关键处打印日志是一个程序员良好的习惯)
代码中打印日志warn信息一般是不影响系统正常运行的警告信息,一般情况,此类也是可以写代码的时候,特定场景下添加警告信息(一般不会用),大部分情况是系统自动生成该类错误.
而error才是你真正需要关心的问题,因为此类错误会直接导致系统无法正常运行,或者直接崩溃.
处理方式当然是看解释器的报错信息了..
一般出现问题,第一反应应该是,服务器上把日志下载到本地.用notepad++等文本软件打开,查找关键字为error的,具体问题具体解决即可.
3如何监控错误?
这个问题的核心是:你想主动让程序告知你发生了什么,还是等到出现问题,直接翻看日志找到问题.
出现error,给你发个短信,或者邮件,这个应该不难吧..定时任务或者异步处理都可以的..具体解决方案,网上有很多监控方式,可针对自己的项目进行学习即可..
网友评论