什么是日志?
服务器日志(server log)是一个或多个由服务器自动创建和维护的日志文件,其中包含其所执行活动的列表。
服务器日志的典型例子是网页服务器的日志,其中包含页面请求的历史记录。W3C维护有一个网页服务器日志文件的标准格式——通用日志格式,但亦有其他专有格式存在。近年来的日志文件通常将内容附加到文件的结尾。添加的信息有关请求,包括客户端IP地址、请求日期/时间、请求的网页、HTTP代码、提供的字节数、用户代理、引用地址等。这些数据可能写入在一个文件中,也可能分隔成不同的日志,如访问日志、错误日志、引荐者日志等。但是,服务器日志通常不会收集特定用户的信息。
———中文Wiki百科志,記誌也。
———《说文解字》
日志,相当于服务器的日记,事无巨细地写下服务器的一切信息,并按照等级予以分类。
查看日志的方法
- 开服后,后台输出的全部信息,就是这一次开服的日志。你可以用滚轮上下翻阅。
- 时间太久的日志,在后台可能无法全部显示。这时请打开服务器下的logs文件夹,就可以看到以时间命名的 gz压缩文件 。用压缩软件解压对应时间的压缩文件即可进行阅读。
注意:服务器最新的日志被记录在logs/latest.log
文件中,还没有被压缩。
日志的组成部分
两种不同形式的日志
第一种,最左侧为日志输出时间,斜杠左侧是输出该日志的线程,一般为服务器主线程,即 Server thread,右侧为该日志的级别,最右侧为日志具体内容。
当某条日志不是由主线程输出的时候,服务器很有可能出现了一些问题,请仔 细阅读这些日志。
[16:36:38] [Server thread/INFO]: Starting Minecraft server on localhost:25565
[16:36:38] [Server thread/INFO]: Using default channel type
[16:36:40] [Server thread/ERROR]: Could not load 'plugins\VIP_1.0.0.jar' in folder 'plugins'
第二种,最左侧为时间,右侧为该日志的级别,分级如上,最右侧为日志具体内容。
[17:36:48 INFO]: Starting Minecraft server on localhost:25565
[17:36:48 ERROR]: Error occurred while enabling Citizens v2.0.16-SNAPSHOT (build 1267) (Is it up to date?)
输出时间
日志发出时的系统时间
日志级别
服务器的日志级别
级别 | 程度 | 具体内容 |
---|---|---|
INFO | 一般信息 | 聊天内容/玩家状态/玩家指令/插件信息/…… |
WARN | 警告信息 | 对于一些潜在的风险进行警告,有可能发展为报错 |
ERROR | 报错信息 | 服务器出现错误后输出的信息 |
线程
正常情况下,日志信息都由服务器主线程输出。当其他线程输出信息的时候,一般有以下两种情况。
- 部分插件利用多线程优化自身,例如一些插件把更新模块放到独立的线程中。
- 主线程卡顿时间过长,检测线程关闭服务器并保存地图和玩家信息。
具体内容
一般信息 ( INFO )
- 聊天信息 : 包括普通聊天,
/say
,/me
以及私聊内容 - 玩家状态 : 玩家出入游戏、死亡以及其他状态的变化
- 玩家指令 : 玩家输入的每一个指令都会被记录
- 插件信息 : 许多插件都会在后台输出有一定意义的信息
- 服务器信息 : 初始化服务端、读取配置、载入世界、启用插件等操作
- 聊天信息 : 包括普通聊天,
警告信息 ( WARN )
插件版本有不兼容风险、配置文件或数据出现问题,暂时可控,可能发展为报错,例如:
[16:11:01] [Server thread/WARN]: [QuickShop] +=========================================
[16:11:01] [Server thread/WARN]: [QuickShop] | 警告: 启动虚拟物品失败 使用原版悬浮物品...
[16:11:01] [Server thread/WARN]: [QuickShop] +=========================================
- 报错信息 ( ERROR )
报错是服务器运行中所遇到的异常情况,它可以来源于服务端本身,也可以来自插件和模组等组件。
这些情况有可能破坏服务器的正常运行,导致玩家体验恶化,信息损坏,甚至服务器崩溃。
关于这类信息的解决方案,我们将在第二单元第六节进行更细致的讲解。