TeamCity On-Premises 2024.03 Help

TeamCity 服务器日志

TeamCity 服务器 会记录内部活动的日志,您可以查看这些日志来调查服务器行为上的问题,或获取内部错误的详细信息。

日志被存储在 TeamCity 服务器机器的磁盘目录中的纯文本文件中(通常位于 <TeamCity Server 安装目录>/logs)。 当 TeamCity 运行时,文件会附加消息。

在服务器运行时,可以在 服务器日志 标签页的 Administration | Diagnostics 部分的 web UI 上查看日志。

一般日志描述

TeamCity 使用 log4j 2.x 库 进行日志记录,且其设置可以 自定义。 在 TeamCity 2022.04 之前的版本中,用于记录的是 Log4j 1.x。

默认情况下,日志文件位于 <TeamCity Server 安装目录>/logs 目录下。

最重要的日志文件包括:

teamcity-server.log

一般服务器日志

teamcity-activities.log

用户发起和主要构建相关事件的日志

teamcity-vcs.log

VCS 相关活动日志

teamcity-cleanup.log

包含与 clean-up 相关的日志

teamcity-commit-status.log

包含 提交状态发布器 相关的日志。 将 debug-commit-status 预设应用于此日志,以写入 DEBUG 级别的消息。

teamcity-notifications.log

通知相关的日志

teamcity-pull-requests.log

Pull Request 相关日志。 将 debug-pull-requests 预设应用于此日志,以包含 DEBUG 级别的消息。

teamcity-clouds.log

(默认关闭)与 Cloud-integration 相关的日志

teamcity-sql.log

(默认关闭)SQL 查询记录,参阅 详细信息

teamcity-http-auth.log

(默认关闭)记录与 NTLM 及其他 HTML 请求认证相关的日志消息

teamcity-xmlrpc.log

(默认关闭)通过 XML-RPC 向代理和 IDE 插件发送的服务器消息日志

vcs-content-cache.log

(默认关闭)记录来自 VCS 的单个文件内容请求相关的日志

teamcity-rest.log

(默认关闭)与 REST-API 相关的日志记录

teamcity-freemarker.log

(默认关闭)通知模板相关的日志处理

teamcity-agentPush.log

(默认关闭)与 agent push 操作相关的日志记录

teamcity-remote-run.log

(默认关闭)与服务器上处理 personal builds 相关的日志记录

teamcity-svn.log

(默认关闭)SVN 集成日志

teamcity-tfs.log

(默认关闭)TFS 集成 日志

teamcity-starteam.log

(默认关闭)StarTeam 集成 日志

teamcity-clearcase.log

(默认关闭)ClearCase integration plugin 日志

teamcity-ldap.log

LDAP相关的日志

teamcity-nuget.log

NuGet相关日志

teamcity-maintenance.log

(默认关闭)使用 maintainDB tool 执行的备份/恢复/迁移的日志

teamcity-maintenance-truncation.log

(默认关闭)含有使用 maintainDB tool 执行备份/恢复/迁移时可能出现的数据截断的扩展信息

teamcity-versioned-settings.log

(默认关闭)包含关于 项目设置的同步与版本控制的信息

teamcity-ws.log

与 TeamCity 服务器使用的 WebSocket connection 进行通信相关的日志

teamcity-issue-trackers.log

与 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.xmldebug-vcs.xml ,系统将不会自动接收这些设置。 为了强制执行更改,请将日志预设切换至其他值,如 <默认> ,然后再切换回 debug-all

log4j 配置中最有用的设置:

要更改保存在文件中的最低日志级别,请调整 记录器 元素的 级别 属性。

<Loggers> <Logger name="jetbrains.buildServer" level="INFO"> ...

日志默认会被轮换。 当启用调试功能时,逻辑上可能需要增加 最大 属性的 <DefaultRolloverStrategy/> 元素以影响保留的日志文件数量。 在执行此操作时,请确保有足够的可用磁盘空间。

<DelegateAppender> ... <DefaultRolloverStrategy max="20" fileIndex="min"/> ...

对于 <DefaultRolloverStrategy/> 以及其他受支持的属性的详细描述,请参阅 Apache 文档中的 RollingFileAppender

阅读日志

每条消息都有一个时间戳和级别( 错误警告信息DEBUG)。

示例:

[2010-11-19 23:22:35,657] INFO - s.buildServer.SERVER - Agent vmWin2k3-3 has been registered with id 19, not running a build
  • 错误 表示操作失败并且丢失了一些数据或者动作未执行。 一般来说,日志中不应该有任何 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.xmlteamcity_logs=../logs/
默认值可以在 bin/teamcity-server 脚本中查看,该脚本可以在 .exetar.gz 分发中找到。

如果您通过其他方式启动 TeamCity ,而不是通过捆绑的 teamcity-serverrunAll 脚本,确保将上述选项传递给服务器 JVM。 参见关于在非捆绑式 web 服务器上安装 TeamCity 的 推荐

默认的 teamcity-server-log4j.xml 文件内容可以在 .exetar.gz 分发中找到。 在服务器首次启动后,可以在 <TeamCity 数据目录>/config/_logging/debug-general.xml 名称下找到启用了调试的那一个。

最后修改日期: 16日 7月 2024年