Tôi đã thấy các phương thức được sử dụng tương tự như @ terdon's. Đó là sự khởi đầu của những gì mà các ngôn ngữ lập trình cấp cao hơn gọi là logger và cung cấp các thư viện đầy đủ, chẳng hạn như log4J (Java), log4Perl (Perl), v.v.
Bạn có thể nhận được một cái gì đó tương tự bằng cách sử dụng set -x
trong Bash như bạn đã đề cập nhưng bạn có thể sử dụng nó để bật gỡ lỗi chỉ là một tập hợp con các lệnh bằng cách gói các khối mã với chúng như vậy.
$ set -x; cmd1; cmd2; set +x
Ví dụ
Đây là một mẫu lót bạn có thể sử dụng.
$ set -x; echo "hi" ;set +x
+ echo hi
hi
+ set +x
Bạn có thể gói chúng như thế này cho nhiều lệnh trong một tập lệnh.
set -x
cmd1
cmd2
set +x
cmd3
Log4Bash
Hầu hết mọi người đều không biết nhưng Bash cũng có log4 *, Log4Bash . Nếu bạn có nhu cầu khiêm tốn hơn, điều này có thể đáng để dành thời gian để thiết lập nó.
log4bash là một nỗ lực để ghi nhật ký tốt hơn cho các tập lệnh Bash (nghĩa là làm cho việc đăng nhập vào Bash trở nên ít hơn).
Ví dụ
Dưới đây là một số ví dụ về việc sử dụng log4bash.
#!/usr/bin/env bash
source log4bash.sh
log "This is regular log message... log and log_info do the same thing";
log_warning "Luke ... you turned off your targeting computer";
log_info "I have you now!";
log_success "You're all clear kid, now let's blow this thing and go home.";
log_error "One thing's for sure, we're all gonna be a lot thinner.";
# If you have figlet installed -- you'll see some big letters on the screen!
log_captains "What was in the captain's toilet?";
# If you have the "say" command (e.g. on a Mac)
log_speak "Resistance is futile";
Log4sh
Nếu bạn muốn những gì tôi sẽ phân loại thành toàn bộ sức mạnh của khung log4 * thì tôi sẽ thử Log4sh .
đoạn trích
log4sh ban đầu được phát triển để giải quyết vấn đề đăng nhập mà tôi gặp phải trong một số môi trường sản xuất mà tôi đã làm việc ở nơi tôi có quá nhiều việc đăng nhập, hoặc không đủ. Công việc cron nói riêng khiến tôi đau đầu nhất với những email liên tục và khó chịu của họ nói với tôi rằng mọi thứ đều hoạt động, hoặc không có gì hiệu quả nhưng không phải là lý do chi tiết tại sao. Bây giờ tôi sử dụng log4sh trong các môi trường mà việc đăng nhập từ shell script là rất quan trọng, nhưng nơi tôi cần nhiều hơn chỉ là một câu "Xin chào, hãy sửa tôi!" loại thông điệp đăng nhập. Nếu bạn thích những gì bạn thấy hoặc có bất kỳ đề xuất nào về các cải tiến, xin vui lòng gửi email cho tôi. Nếu có đủ sự quan tâm đến dự án, tôi sẽ phát triển nó hơn nữa.
log4sh đã được phát triển theo Bourne Again Shell (/ bin / bash) trên Linux, nhưng phải hết sức cẩn thận để đảm bảo nó hoạt động theo Bourne Shell of Solaris (/ bin / sh) mặc định vì đây là sản phẩm chính nền tảng được sử dụng bởi chính tôi.
Log4sh hỗ trợ một số shell, không chỉ Bash.
- Vỏ Bourne (sh)
- BASH - GNU Bourne Again SHell (bash)
- DASH (dấu gạch ngang)
- Korn Shell (ksh)
- pdksh - Tên miền Korn Shell (pdksh)
Nó cũng đã được thử nghiệm trên một số hệ điều hành, không chỉ Linux.
- Cygwin (trong Windows)
- FreeBSD (hỗ trợ người dùng)
- Linux (Gentoo, RedHat, Ubuntu)
- Mac OS X
- Solaris 8, 9, 10
Sử dụng khung log4 * sẽ mất một chút thời gian để tìm hiểu nhưng nó đáng giá nếu bạn có nhu cầu khắt khe hơn từ việc đăng nhập của mình. Log4sh sử dụng tệp cấu hình nơi bạn có thể xác định các phần bổ sung và kiểm soát định dạng cho đầu ra sẽ xuất hiện.
Thí dụ
#! /bin/sh
#
# log4sh example: Hello, world
#
# load log4sh (disabling properties file warning) and clear the default
# configuration
LOG4SH_CONFIGURATION='none' . ./log4sh
log4sh_resetConfiguration
# set the global logging level to INFO
logger_setLevel INFO
# add and configure a FileAppender that outputs to STDERR, and activate the
# configuration
logger_addAppender stderr
appender_setType stderr FileAppender
appender_file_setFile stderr STDERR
appender_activateOptions stderr
# say Hello to the world
logger_info 'Hello, world'
Bây giờ khi tôi chạy nó:
$ ./log4sh.bash
INFO - Hello, world
LƯU Ý: Phần trên cấu hình appender như một phần của mã. Nếu bạn thích điều này có thể được trích xuất ra thành tập tin riêng của nó, log4sh.properties
v.v.
Tham khảo tài liệu tuyệt vời cho Log4sh nếu bạn cần thêm chi tiết.
set -v
đầu ra bạn muốn và phần nào bạn không.