bash에 대한 log4j와 비슷한 것이 있습니까?

bash에 대한 log4j와 비슷한 것이 있습니까?

log4jbash 스크립트 와 같은 것이 있습니까 ? 심각도에 따라 오류를 다르게 처리할 수 있기를 원합니다. 예를 들어 log4j오류, 정보, 디버그 등을 구별할 수 있습니다. Bash에서 이 작업을 수행할 수 있는 방법이 있나요?

아래 예와 같이 로그에 기록하는 함수를 작성할 수 있습니다.

LOG ()  { 
           echo `date` $* >> /var/log/my_log.log 
        } 

하지만 실제로 log4j와 같은 것이 bash와 관련이 있는지 알고 싶습니다.

다음 능력을 얻기 위해서는 -오류 수준등.

답변1

대부분 의 시스템에는 이 logger유틸리티가 있으며 syslogd.syslogdSTDERR

로깅 의미 체계는 .와 같은 도구에서 제공하는 것과 완전히 동일하지는 않지만 설정을 메시지 태그와 결합 log4j하면 facility.level매우 유사한 결과를 얻을 수 있습니다.

노트:이 예제에서는 FreeBSD 버전을 사용합니다 logger. 시스템에 다른 옵션이 있을 수 있으므로 현지 설명서를 읽어보세요!

logger -p local3.info -f /var/log/messages -t MY_LOG_TAG "something interesting happened"

/var/log/messages그러면 시설에 info심각도로 로그인하라는 메시지가 전송됩니다 local3. -t MY_LOG_TAG각 라인에 포함된 마커( )로 구성됩니다 . 태그는 등을 사용하여 로그 항목을 추출하는 데 유용합니다 grep.awk

logger -h loghost -p mail.crit -s -f /var/log/mail "an unrecoverable error has occurred"

crit로그인을 위해 심각도가 포함된 메시지를 장치에서 mail원격 컴퓨터로 보냅니다 . 이로 인해 메시지가 스크립트에 인쇄되어 로그로 전송됩니다.loghost/var/log/mail-sSTDERR

답변2

쉘 전역 변수를 통해 쉘 스크립트를 로깅하는 방법에 대한 자세한 정보가 많이 있습니다. 쉘 스크립트에서 유사한 로깅을 시뮬레이션할 수 있습니다.http://www.cubicrace.com/2016/03/log-tracing-mechnism-for-shell-scripts.html

이 문서에서는 INFO, DEBUG, ERROR와 같은 로그 수준을 자세히 설명합니다. 스크립트 입력, 스크립트 종료, 함수 입력, 함수 종료 등과 같은 세부 정보를 추적합니다.

샘플 로그:

여기에 이미지 설명을 입력하세요.

답변3

GitHub에서 내 로깅 구현을 살펴보는 것이 좋습니다.

https://github.com/codeforester/base/blob/master/lib/stdlib.sh

5가지 로그 수준(ERROR, WARN, INFO, DEBUG 및 VERBOSE)과 여러 로거를 지원합니다.

관련 정보