CI/CD job 로그
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
job 로그는 CI/CD job의 전체 실행 기록을 표시합니다. job 및 해당 로그 출력에 대한 자세한 정보를 보려면 job 로그 페이지를 스크롤합니다. Show full screen을 클릭하여 전체 화면 모드로 job 로그 내용을 볼 수 있습니다.
job 로그는 CI/CD job의 전체 실행 기록을 표시합니다.
job 로그 보기#
job 로그를 보려면:
- job 로그를 보려는 프로젝트를 선택합니다.
- 왼쪽 사이드바에서 CI/CD > Pipelines를 선택합니다.
- 검사할 파이프라인을 선택합니다.
- 파이프라인 보기에서 job 목록에서 job 로그 페이지를 보려는 job을 선택합니다.
job 및 해당 로그 출력에 대한 자세한 정보를 보려면 job 로그 페이지를 스크롤합니다.
전체 화면 모드로 job 로그 보기#
히스토리
- GitLab 16.7에서 도입되었습니다.
Show full screen을 클릭하여 전체 화면 모드로 job 로그 내용을 볼 수 있습니다.
전체 화면 모드를 사용하려면 웹 브라우저도 이를 지원해야 합니다. 웹 브라우저가 전체 화면 모드를 지원하지 않으면 옵션이 제공되지 않습니다.
job 로그 섹션 펼치기 및 접기#
이 기능의 가용성은 기능 플래그로 제어됩니다. 자세한 내용은 기록을 참조하세요.
FF_SCRIPT_SECTIONS가 활성화되면 멀티라인 스크립트 명령어가 job 로그에서 접기 가능한 섹션으로 표시됩니다. 싱글라인 명령어는 $ 접두사와 함께 직접 출력됩니다. 소요 시간은 표시되지 않습니다.
powershell 및 pwsh 셸에서는 FF_SCRIPT_SECTIONS가 접기 가능한 섹션을 생성하지 않습니다.
명령어는 색상 출력만으로 표시됩니다.
커스텀 접기 가능 섹션 만들기#
GitLab이 접기 가능 섹션을 구분하는 데 사용하는 특수 코드를 수동으로 출력하여 job 로그의 접기 가능 섹션을 생성할 수 있습니다:
- 섹션 시작 마커:
\e[0Ksection_start:UNIX_TIMESTAMP:SECTION_NAME\r\e[0K+TEXT_OF_SECTION_HEADER - 섹션 종료 마커:
\e[0Ksection_end:UNIX_TIMESTAMP:SECTION_NAME\r\e[0K
CI 구성의 스크립트 섹션에 이 코드를 추가해야 합니다.
예를 들어 echo를 사용하는 경우:
job1:
script:
- echo -e "\e[0Ksection_start:`date +%s`:my_first_section\r\e[0KHeader of the 1st collapsible section"
- echo 'this line should be hidden when collapsed'
- echo -e "\e[0Ksection_end:`date +%s`:my_first_section\r\e[0K"
이스케이프 구문은 러너가 사용하는 셸에 따라 다를 수 있습니다.
예를 들어 Zsh를 사용하는 경우 \\e 또는 \\r로 특수 문자를 이스케이프해야 할 수 있습니다.
위 예시에서:
date +%s: Unix 타임스탬프를 생성하는 명령어 (예:1560896352).my_first_section: 섹션에 부여된 이름. 이름은 문자, 숫자,_,.,-문자로만 구성될 수 있습니다.\r\e[0K: 렌더링된(색상 있는) job 로그에서 섹션 마커가 표시되지 않도록 하는 이스케이프 시퀀스. 원시 job 로그를 볼 때 표시되며, job 로그 오른쪽 상단에서 Show complete raw ([doc-text])를 선택하여 접근할 수 있습니다.\r: 캐리지 리턴(커서를 줄의 시작으로 되돌림).\e[0K: 커서 위치에서 줄 끝까지 줄을 지우는 ANSI 이스케이프 코드. (\e[K만으로는 작동하지 않으며0을 포함해야 합니다).
원시 job 로그 샘플:
\e[0Ksection_start:1560896352:my_first_section\r\e[0KHeader of the 1st collapsible section
this line should be hidden when collapsed
\e[0Ksection_end:1560896353:my_first_section\r\e[0K
job 콘솔 로그 샘플:

스크립트로 섹션 표시 개선#
섹션 마커를 생성하는 echo 문을 job 출력에서 제거하려면
job 내용을 스크립트 파일로 이동하고 job에서 호출할 수 있습니다:
-
섹션 헤더를 처리할 수 있는 스크립트를 생성합니다. 예를 들어:
# function for starting the section function section_start () { local section_title="${1}" local section_description="${2:-$section_title}" echo -e "section_start:`date +%s`:${section_title}[collapsed=true]\r\e[0K${section_description}" } # Function for ending the section function section_end () { local section_title="${1}" echo -e "section_end:`date +%s`:${section_title}\r\e[0K" } # Create sections section_start "my_first_section" "Header of the 1st collapsible section" echo "this line should be hidden when collapsed" section_end "my_first_section" # Repeat as required -
.gitlab-ci.yml파일에 스크립트를 추가합니다:job: script: - source script.sh
기본적으로 섹션 접기#
섹션을 기본적으로 접으려면 섹션 이름 뒤, \r 앞의 섹션 시작 마커에 [collapsed=true]를 추가합니다:
[collapsed=true]가 있는 섹션 시작 마커:\e[0Ksection_start:UNIX_TIMESTAMP:SECTION_NAME[collapsed=true]\r\e[0K+TEXT_OF_SECTION_HEADER- 섹션 종료 마커(변경 없음):
\e[0Ksection_end:UNIX_TIMESTAMP:SECTION_NAME\r\e[0K
CI 구성에 업데이트된 섹션 시작 텍스트를 추가합니다. 예를 들어
echo를 사용하는 경우:
job1:
script:
- echo -e "\e[0Ksection_start:`date +%s`:my_first_section[collapsed=true]\r\e[0KHeader of the 1st collapsible section"
- echo 'this line should be hidden automatically after loading the job log'
- echo -e "\e[0Ksection_end:`date +%s`:my_first_section\r\e[0K"
job 로그 삭제#
job 로그를 삭제하면 전체 job도 지워집니다.
자세한 내용은 job 로그 삭제를 참조하세요.
타임스탬프#
히스토리
기본적으로 job 로그는 각 줄에 ISO 8601 형식의 타임스탬프를 포함합니다. 타임스탬프를 사용하여 성능 이슈를 해결하고, 병목 현상을 식별하고, 특정 빌드 단계가 얼마나 걸리는지 측정합니다.
타임스탬프가 활성화되면 job 로그는 약 10% 더 많은 저장 공간을 사용합니다.
다음은 타임스탬프가 있는 job 로그의 예시입니다:

job 로그의 타임스탬프 제어#
사전 요구사항:
- GitLab Runner 18.7 이상.
job 로그에 타임스탬프 표시 여부를 제어하려면 FF_TIMESTAMPS CI/CD 변수를 사용합니다:
- 타임스탬프를 비활성화하려면
false로 설정 - 타임스탬프를 명시적으로 활성화하려면
true로 설정
예를 들어:
variables:
FF_TIMESTAMPS: false # Disables timestamps
job:
script:
- echo "This job's log behavior depends on FF_TIMESTAMPS value"
자세한 내용은 .gitlab-ci.yml 파일에서 CI/CD 변수 정의를 참조하세요.
문제 해결#
job 로그 업데이트 느림#
실행 중인 job에 대한 job 로그 페이지를 방문할 때 로그 업데이트 전 최대 60초 지연이 있을 수 있습니다. 기본 새로 고침 시간은 60초이지만, 로그를 UI에서 한 번 보면 로그 업데이트가 3초마다 발생해야 합니다.
GitLab 18.0 이상에서 This job does not have a trace 오류#
GitLab Self-Managed 인스턴스를 18.0 이상으로 업그레이드한 후 This job does not have a trace 오류가 발생할 수 있습니다. 이는 다음 두 가지가 모두 있는 인스턴스에서 실패한 업그레이드 마이그레이션으로 인해 발생할 수 있습니다:
- 오브젝트 스토리지 활성화
- 제거된 기능 플래그
ci_enable_live_trace로 이전에 활성화된 증분 로깅. 이 기능 플래그는 GitLab Environment Toolkit 또는 Helm 차트 배포에서 기본적으로 활성화되지만 수동으로도 활성화할 수 있습니다.
영향받은 job에서 job 로그를 볼 수 있는 기능을 복원하려면 증분 로깅을 다시 활성화하세요.
