TeamCity 服务器日志
TeamCity 服务器 会记录内部活动的日志,您可以查看这些日志来调查服务器行为上的问题,或获取内部错误的详细信息。
日志以纯文本文件的形式存储在 TeamCity 服务器机器的磁盘目录中(通常位于 <TeamCity Server Home>/log)。 当 TeamCity 运行时,文件会附加消息。
在服务器运行时,可以在 Web UI 的 服务器日志 选项卡的 管理 | 诊断 部分中查看日志。
一般日志描述
TeamCity 使用 log4j 2.x 库 进行日志记录,且其设置可以 自定义。 在 TeamCity 2022.04 之前的版本中,用于记录的是 Log4j 1.x。
默认情况下,日志文件位于 <TeamCity Server home>/log 目录下。
最重要的日志文件包括:
| 一般服务器日志 |
| 在服务器启动期间写入 此日志未包含在 log4j2 配置中,旨在协助排查服务器启动问题。 |
| 用户发起和主要构建相关事件的日志 |
| VCS 相关活动日志 |
| 包含与 clean-up 相关的日志 |
| 包含 提交状态发布器 相关的日志。 将 |
| 通知相关的日志 |
| Pull Request 相关日志。 将 |
| (默认关闭)与 Cloud-integration 相关的日志 |
| (默认关闭)SQL 查询记录,参阅 详细信息 |
| (默认关闭)记录与 NTLM 及其他 HTML 请求认证相关的日志消息 |
| (默认关闭)通过 XML-RPC 向代理和 IDE 插件发送的服务器消息日志 |
| (默认关闭)记录来自 VCS 的单个文件内容请求相关的日志 |
| (默认关闭)与 REST-API 相关的日志记录 |
| (默认关闭) 通知模板相关的日志处理 |
| (默认关闭)与 agent push 操作相关的日志记录 |
| (默认关闭)与服务器上处理 personal builds 相关的日志记录 |
| (默认关闭) SVN 集成日志 |
| (默认关闭) TFS 集成 日志 |
| (默认关闭) StarTeam 集成 日志 |
| (默认关闭) ClearCase integration plugin 日志 |
| LDAP相关的日志 |
| NuGet相关日志 |
| (默认关闭)使用 maintainDB tool 执行的备份/恢复/迁移的日志 |
| (默认关闭)含有使用 maintainDB tool 执行备份/恢复/迁移时可能出现的数据截断的扩展信息 |
| (默认关闭)包含关于 项目设置的同步与版本控制的信息 |
| 与 TeamCity 服务器使用的 WebSocket connection 进行通信相关的日志 |
| 与 TeamCity 和已配置的 issue tracker 之间的通信相关的日志 |
其他文件也可以在更改 Logging Configuration时创建。
某些文件可能具有 .N 扩展名——这些是在主文件旋转时复制了以前的日志消息的文件。 参见 <DefaultRolloverStrategy/> 以保存更多文件。
与日志相关的诊断用户界面
具有系统管理员角色的用户可以直接通过 TeamCity UI 使用 管理 | 诊断 | 服务器日志 查看和下载服务器日志。
更改日志配置
在 TeamCity 运行时,可以通过在可用的 日志预设 之间进行选择,来更改当前活动的日志设置。
活动日志记录预设在 管理 | 诊断 | 疑难解答 | 调试日志记录 部分中更改。 选择预设会立即更改日志配置,并在服务器重新启动后保留预设,直到再次在此页面手动更改。 强烈建议在收集到必要的日志后返回到默认预设。
可用的预设存储在 .xml 扩展名的文件中,位于 <TeamCity Data Directory>/config/_logging 目录下。 新的文件可以添加到目录中,现有文件可以被修改(使用 .dist 约定)。 也可以通过 诊断 | 日志预设 上传新的预设。
如果无法通过日志记录预设启用调试日志模式(例如,在服务器初始化期间获取日志记录)或对日志记录进行持久更改,您可以备份 conf/teamcity-server-log4j.xml 文件,并在服务器启动前将 <TeamCity Data Directory>/config/_logging/debug-general.xml 文件复制/重命名为 conf/teamcity-server-log4j.xml。
更改日志设置
如果您想微调 log4j 配置,可以编辑 <TeamCity Server home>/conf/teamcity-server-log4j.xml 文件。 如果服务器正在运行,log4j 配置文件将自动重新加载,并且日志配置将即时更改(尽管仍受到一些 log4j 的限制,因此,对于大量更改,您可能需要考虑重新启动服务器)。
如果您在其他预设文件中更改设置,如 debug-all.xml 或 debug-vcs.xml ,系统将不会自动接收这些设置。 为了强制执行更改,请将日志预设切换至其他值,如 <默认> ,然后再切换回 debug-all。
log4j 配置中最有用的设置:
要更改保存在文件中的最低日志级别,请调整 记录器 元素的 级别 属性。
日志默认会被轮换。 当启用调试功能时,逻辑上可能需要增加 最大 属性的 <DefaultRolloverStrategy/> 元素以影响保留的日志文件数量。 在执行此操作时,请确保有足够的可用磁盘空间。
对于 <DefaultRolloverStrategy/> 以及其他受支持的属性的详细描述,请参阅 Apache 文档中的 RollingFileAppender。
阅读日志
每条消息都有一个时间戳和级别(错误, 警告, 信息, DEBUG)。
示例:
错误表示操作失败并且丢失了一些数据或者动作未执行。 一般来说,日志中不应该有任何 ERROR。警告通常表示一个操作失败,但将重试或认为该操作不重要。 一些 WARN 是可以接受的。 但您可以查看日志中的此类警告,以更好地理解哪些操作正常,哪些操作有问题。信息是一条信息性消息,只报告当前的活动情况。DEBUG只对问题调查有用,例如,由TeamCity开发人员进行分析。
一般日志配置
默认情况下,TeamCity 在 .../conf/teamcity-server-log4j.xml 文件中搜索 log4j 配置(对于 TeamCity .exe 和 .tar.gz 分发版,从 bin 运行时,这将解析为 <TeamCity Server home>/conf/teamcity-server-log4j.xml)。 如果没有此类文件,将使用默认的 log4j 配置。 日志默认保存在 ../log 目录中。
如有必要,您可以通过添加 log4j2.configurationFile JVM 选项或 内部属性 来更改到配置的路径。 到 logs 目录的路径可以通过 TEAMCITY_LOGS_PATH 环境变量配置,或者,通过 teamcity_logs JVM 选项或 内部属性配置。
例如: log4j2.configurationFile=file:../conf/teamcity-server-log4j.xml 和 teamcity_logs=../logs/。
默认值可以在 bin/teamcity-server 脚本中查看,该脚本可以在 .exe 和 tar.gz 分发中找到。
如果您通过其他方式启动 TeamCity ,而不是通过捆绑的 teamcity-server 或 runAll 脚本,确保将上述选项传递给服务器 JVM。 参见关于在非捆绑式 web 服务器上安装 TeamCity 的 推荐。
默认的 teamcity-server-log4j.xml 文件内容可以在 .exe 和 tar.gz 分发中找到。 启用调试的日志可以在服务器首次启动后以 <TeamCity Data Directory>/config/_logging/debug-general.xml 名称找到。