组件日志
概述
Rainbond 组件页面中的 日志 用于查看组件运行实例的实时日志。这里展示的是容器的标准输出和标准错误输出,也就是应用打印到 stdout 和 stderr 的内容。
如果组件已经启动,但日志页面没有内容,通常不是平台没有采集到日志,而是应用没有把日志打印到 stdout 或 stderr。例如应用只把日志写入容器内的某个文件目录,组件日志页面就不会自动读取这些文件。
让日志显示在组件日志中
推荐将运行日志输出到标准输出,由 Rainbond 和 Kubernetes 统一接管日志查看。这样可以直接在组件的 日志 页面查看启动过程、异常堆栈和运行信息。
常见处理方式如下:
- Java / Spring Boot:保留控制台日志输出,不要只配置
logging.file.name或只写入文件。 - Node.js:使用
console.log()、console.error()或日志框架的 Console 输出。 - Python:使用
print()或将logging输出到sys.stdout/sys.stderr。 - Go:使用
log.Print()、fmt.Println()或将日志框架输出到标准输出。 - Nginx:将访问日志和错误日志分别输出到
/dev/stdout和/dev/stderr。
Nginx 示例:
access_log /dev/stdout;
error_log /dev/stderr;
调整日志输出方式后,更新或重启组件,再进入组件的 日志 页面查看实时日志。
下载文件日志
如果业务必须把日志输出到目录中,例如 /app/logs、/data/logs 或框架默认的 logs 目录,需要先把该目录配置为组件存储。这样日志文件会写入挂载的存储卷,后续才能在 Rainbond 中下载。
对于源码构建的组件,运行时默认工作目录是 /workspace。如果应用配置的是相对路径日志目录,例如 logs 或 ./logs,实际写入位置就是 /workspace/logs。添加存储 时,挂载路径需要填写这个实际目录。
操作步骤:
- 进入目标组件的 存储 页面。
- 点击 添加存储,选择合适的存储类型。
- 将存储挂载路径填写为应用实际写日志的目录,例如
/app/logs或/workspace/logs。 - 保存后更新或重启组件,使存储挂载生效。
- 确认应用继续把文件日志写入该目录。
- 在组件的 存储 页面找到该存储,点击 下载,将日志文件下载到本地。
提示
添加存储后,应用写入挂载目录的新文件才会进入存储卷。已经写在容器临时文件系统中的旧日志,不会自动迁移到新挂载的存储中。
选择哪种方式
日常排障建议优先使用标准输出日志,直接在组件日志中查看。只有在业务要求保留文件日志、需要按文件归档,或框架必须写入固定目录时,才需要为日志目录添加存储并通过存储下载。
如果需要检索历史日志、跨组件查询日志或下载标准输出产生的历史日志,可以启用 日志中心插件。