2012-02-14 22 views

Trả lời

7

Nếu bạn có nghĩa là đầu ra chung của một bản dựng Jenkins, điều này có sẵn thông qua giao diện người dùng web cho mỗi bản dựng, dưới liên kết "Giao diện điều khiển".

Nếu bạn có nghĩa là tệp nhật ký cụ thể được tạo trong không gian làm việc trong khi xây dựng, bạn có thể chọn tùy chọn "Lưu trữ các hiện vật" trong phần "Các bước xây dựng sau" của cấu hình công việc.

Ở đó bạn có thể chỉ định mẫu tệp, ví dụ: **/*.log.

Bất kỳ tệp nào trong không gian làm việc khớp với mẫu đó sẽ được lưu trữ ở cuối mỗi bản dựng và sẽ hiển thị trên trang web của công trình.

Lưu ý rằng bản dựng sẽ thất bại nếu không có tệp khớp với mẫu này.

+0

Cảm ơn bạn đã trả lời, đây là tùy chọn thứ ba - nhật ký của tôi nhất thiết phải ở một vị trí không thuộc không gian làm việc của jenkins. Tôi muốn sao chép chúng vào không gian làm việc của Jenkins – laura

2

Bạn có thể tạo nhật ký trong khi xây dựng và giả sử chúng dưới dạng tạo tác tuy nhiên lõi jenkins không cho phép bạn lưu nhật ký bảng điều khiển vào không gian làm việc. Nếu bạn muốn lưu nhật ký bảng điều khiển, bạn sẽ cần cài đặt ConsoleLogToWorkspace plugin. Plugin này sẽ cung cấp cho bạn khả năng lưu toàn bộ nhật ký bảng điều khiển jenkins.

8

Câu trả lời của tôi là về việc đọc tệp nhật ký máy chủ/thùng chứa ứng dụng từ các hộp khác nhau so với Jenkins đang chạy. Ví dụ, nếu bạn sử dụng Jenkins để xây dựng các cuộc chiến của bạn và sau đó triển khai chúng đến một số môi trường và bạn muốn đọc các tệp nhật ký từ máy chủ Jenkins CI của mình mà không cần phải ssh/telnet theo cách thủ công các hộp khác.

Bạn có thể tạo Dự án/công việc Jenkins sẽ làm điều đó cho bạn, sau khi tạo dự án Jenkins, bạn sẽ thấy tùy chọn Cấu hình và bên trong có tùy chọn trong phần Xây dựng nơi bạn có thể viết kịch bản lệnh shell:

Shell script area

kịch bản của bạn có thể là một cái gì như thế này:

#!/bin/sh 

USER=<your ssh user> 
HOST=<your remote host> 
LOG_DIR=<your log file location> 
FILE=<your log file> 

cmd="ssh [email protected]$HOST cat $LOG_DIR/$FILE" 
echo $cmd 
$cmd 

Hoặc một cái gì đó phức tạp hơn, ví dụ như đi qua các thông số trước khi xây dựng các Jenkins Job vì vậy người dùng của bạn có thể chọn những ronment ronment và tập tin họ muốn xem log, có một tùy chọn gọi là "xây dựng Đây là tham số" mà bạn có thể lựa chọn và thêm các thông số của bạn:

Adding parameters

Với cấu hình mà người dùng sẽ thấy một cái gì đó như thế này khi cố gắng để xây dựng dự án:

enter image description here

các kịch bản shell có thể sử dụng những params như thế này:

#!/bin/sh 

USER=<your ssh user> 
LOG_DIR_DEV=<log files location in dev> 
LOG_DIR_QA=<log files location in qa> 

if [ $ENVIRONMENT = "dev" ]; then 
    HOST=<your remote host for dev> 
    LOG_DIR=$LOG_DIR_DEV 
fi 
if [ $ENVIRONMENT = "QA" ]; then 
    HOST=<your remote host for qa> 
    LOG_DIR=$LOG_DIR_QA 
fi 

echo ENVIRONMENT=$ENVIRONMENT 
cmd="ssh [email protected]$HOST cat $LOG_DIR/$FILE" 
echo $cmd 
$cmd 

Sau khi xây dựng các công việc mà họ có thể nhìn thấy đầu ra từ các bản ghi trong Jenkins Job Console cho ví dụ:

Console Output

Nếu file log của bạn đang quá lâu có thể bạn có thể sử dụng "đuôi" thay vì "con mèo "trong kịch bản.

Các vấn đề liên quan