@terdon과 비슷한 방법을 사용했습니다. 그것은 고급 프로그래밍 언어가 로거를 부르는 것의 시작이며 log4J (Java), log4Perl (Perl) 등과 같은 완전한 라이브러리로 제공합니다.
set -x
앞에서 언급했듯이 Bash에서 비슷한 것을 사용할 수 있지만 코드 블록을 래핑하여 명령의 하위 세트 만 디버깅하도록 설정할 수 있습니다.
$ set -x; cmd1; cmd2; set +x
예
사용할 수있는 하나의 라이너 패턴이 있습니다.
$ set -x; echo "hi" ;set +x
+ echo hi
hi
+ set +x
스크립트의 여러 명령에 대해 이와 같이 줄 바꿈 할 수 있습니다.
set -x
cmd1
cmd2
set +x
cmd3
Log4Bash
대부분의 사람들은 모른다는하지만 배쉬는 또한뿐만 아니라 LOG4 *을 가지고 Log4Bash을 . 좀 더 겸손한 요구 사항이있는 경우이를 설정하는 데 시간이 걸릴 수 있습니다.
log4bash는 Bash 스크립트에 대한 로깅을 향상시키려는 시도입니다 (예 : Bash에 로깅을 줄임).
예
다음은 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
log4 * 프레임 워크의 강력한 기능으로 분류하려는 것을 원한다면 Log4sh 를 사용해보십시오.
발췌
log4sh는 원래 로깅이 너무 많거나 부족한 곳에서 일한 일부 프로덕션 환경에서 로깅 문제를 해결하기 위해 개발되었습니다. 특히 Cron 채용 공고는 모든 것이 효과가 있었거나 아무런 효과가 없었지만 자세한 이유는 아니라고 말하는 지속적이고 성가신 이메일로 인해 가장 두통을 일으켰습니다. 이제 쉘 스크립트에서 로깅하는 것이 중요하지만 단순한 "Hello, fix me!"이상이 필요한 환경에서 log4sh를 사용합니다. 로깅 메시지 유형. 당신이보고있는 것을 좋아하거나 개선에 대한 제안이 있으면, 저에게 이메일을 남겨주세요. 프로젝트에 대한 관심이 충분하면 더 발전시킬 것입니다.
log4sh는 Linux의 Bourne Again Shell (/ bin / bash)에서 개발되었지만 기본 Bourne Shell (/ bin / sh)에서 기본 프로덕션으로 작동하도록주의를 기울였습니다. 나 자신이 사용하는 플랫폼.
Log4sh는 Bash뿐만 아니라 여러 쉘을 지원합니다.
- 본 셸 (sh)
- 배쉬-GNU Bourne Again SHell (bash)
- 대시 (대시)
- 콘쉘 (ksh)
- pdksh-공개 도메인 Korn 쉘 (pdksh)
또한 Linux뿐만 아니라 여러 OS에서 테스트되었습니다.
- Cygwin (Windows에서)
- FreeBSD (사용자 지원)
- 리눅스 (Gentoo, RedHat, Ubuntu)
- 맥 OS X
- 솔라리스 8, 9, 10
log4 * 프레임 워크를 사용하는 데는 시간이 다소 걸리지 만 로깅에서 더 많은 요구가있는 경우에는 그만한 가치가 있습니다. Log4sh는 어 펜더를 정의하고 표시 될 출력 형식을 제어 할 수있는 구성 파일을 사용합니다.
예
#! /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'
이제 내가 실행할 때 :
$ ./log4sh.bash
INFO - Hello, world
참고 : 위의 코드는 코드의 일부로 어 펜더를 구성합니다. 원하는 경우 자체 파일 log4sh.properties
등 으로 추출 할 수 있습니다 .
자세한 내용이 필요하면 Log4sh에 대한 훌륭한 문서를 참조 하십시오.
set -v
원하는 출력 부분과 원하지 않는 부분을 설명하지 않으면 도움 이되지 않습니다.