TeamCity 服务器日志
TeamCity 服务器 会记录内部活动的日志,您可以查看这些日志来调查服务器行为上的问题,或获取内部错误的详细信息。
日志被存储在 TeamCity 服务器机器的磁盘目录中的纯文本文件中(通常位于 <TeamCity Server 安装目录>/logs
)。 当 TeamCity 运行时,文件会附加消息。
在服务器运行时,可以在 服务器日志
标签页的 Administration | Diagnostics 部分的 web UI 上查看日志。
一般日志描述
TeamCity 使用 log4j 2.x 库 进行日志记录,且其设置可以 自定义。 在 TeamCity 2022.04 之前的版本中,用于记录的是 Log4j 1.x。
默认情况下,日志文件位于 <TeamCity Server 安装目录>/logs
目录下。
最重要的日志文件包括:
| 一般服务器日志 |
| 用户发起和主要构建相关事件的日志 |
| 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 用户界面查看和下载服务器日志,具体路径为 Administration | Diagnostics | 服务器日志。
更改日志配置
在 TeamCity 运行时,可以通过在可用的 日志预设 之间进行选择,来更改当前活动的日志设置。
活动日志预设的更改在 Administration | Diagnostics | 故障排除 | 调试日志 部分进行。 选择预设会立即更改日志配置,并在服务器重新启动后保留预设,直到再次在此页面手动更改。 强烈建议在收集到必要的日志后返回到默认预设。
可用的预设存储在 <TeamCity 数据目录>/config/_logging
目录下的具有 .xml
扩展名的文件中。 新的文件可以添加到目录中,现有文件可以被修改(使用 .dist
约定)。 新的预设也可以通过 Diagnostics | Logging Presets 上传。
如果无法通过日志预设启用调试日志模式(例如,获取服务器初始化期间的日志),或者无法对日志进行持久性更改,您可以备份 conf/teamcity-server-log4j.xml
文件,并在服务器启动前将 <TeamCity 数据目录>/config/_logging/debug-general.xml
文件复制/重命名为 conf/teamcity-server-log4j.xml
。
更改日志设置
如果您想要精细调整 log4j 配置,您可以编辑 <TeamCity Server 安装目录>/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 配置(这对于从 bin
运行的 TeamCity .exe
和 .tar.gz
发行版来说,会解析为 <TeamCity Server 安装目录>/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 数据目录>/config/_logging/debug-general.xml
名称下找到启用了调试的那一个。