bash + Existe algo como log4j para o script bash?

2

Existe algo como log4j para o script bash? Eu gostaria de poder tratar os erros de maneira diferente com base na gravidade deles. Por exemplo, log4j me permite diferenciar entre erros, informações, depuração, etc. Existe uma maneira de fazer isso por bash?

Eu sei, eu posso apenas escrever uma função, que escreve para log como o seguinte exemplo:

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

Mas, na verdade, eu quero saber se algo como log4j é relevante para o bash

para obter a capacidade de nível de erro e etc.

    
por maihabunash 07.07.2014 / 11:55

2 respostas

3

A maioria dos sistemas tem o utilitário logger , que sabe como falar com syslogd . Ele permite que você defina o nível de log (gravidade), o nome do recurso, especifique o arquivo de log para gravar, envie para syslogd em um host remoto, grave mensagens em STDERR e no log do sistema.

As semânticas de registro não são exatamente as mesmas fornecidas por ferramentas como log4j , mas combinando as configurações facility.level com as tags de mensagem, você pode conseguir algo muito próximo.

Exemplos

NOTA: Estes exemplos usam a versão do FreeBSD de logger . Seu sistema pode ter diferentes opções, então leia sua documentação local!

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

Isso enviará a mensagem para ser registrada em /var/log/messages com uma severidade de info , na facilidade local3 . Inclui uma tag ( -t MY_LOG_TAG ), incluída em cada linha. As tags são úteis para extrair entradas de log com grep , awk , etc.

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

Este envia a mensagem com gravidade crit na instalação mail para a máquina remota loghost , para efetuar login em /var/log/mail . O -s faz com que a mensagem seja impressa no STDERR do script, além de ser enviada para ser registrada.

    
por 07.07.2014 / 12:14
1

Há uma boa quantidade de detalhes no registro de scripts de shell via global variáveis de concha. Podemos emular o tipo semelhante de registro em shell script: link

A postagem contém detalhes sobre a introdução de níveis de log, como INFO, DEBUG e ERROR. Detalhes de rastreamento, como entrada de script, saída de script, entrada de função, saída de função.

Log de amostra:

    
por 03.03.2016 / 06:02

Tags