
Pacote de compositor leve para o log de arquivos com capacidade de enviar erros com o Webhook.
Exemplo de uso
Para configurar o caminho globalmente para todos os arquivos de log, você pode chamar o método setPath no seu arquivo de bootstrap.
use Serhii TinyLogger Logger ;
Logger:: setPath ( ' logs/errors.log ' ); // simple format
Logger:: setPath ( ' logs/%s.log ' , ' errors ' ); // sprintf formatNOTA: Se você deseja usar o Logger em um script cron ou algo como o WordPress Hook, precisará chamar
setPath()na primeira etapa da execução do script, significa que seu projeto pode ter vários lugares onde você precisa definir o caminho para seus logs. Se você não quiser chamarsetPath()pode simplesmente passar o caminho para uma funçãotiny_log()como um terceiro argumento. Veja um exemplo na seção de uso.
Este pacote vem com uma função tiny_log() onde o segundo e o terceiro argumentos não são necessários.
tiny_log ( ' Some error message ' );
// Output in file: [2020-01-12 04:09:16] error: Some error message.
tiny_log ( ' Some error message ' , ' info ' );
// Output in file: [2020-01-12 04:09:16] info: Some error message.
tiny_log ( ' Some error message ' , ' debug ' , ' logs/debug.log ' );
// If you don't need to set path globally, just pass file path as the third argument to the tiny_log function .Você também pode usar a classe Logger, se quiser. Fará o mesmo que usar a função.
use Serhii TinyLogger Logger ;
Logger:: new ()-> error ( ' Some error message ' );
Logger:: new ()-> info ( ' Some info message ' );
Logger:: new ()-> debug ( ' Some error message ' ); Para usar uma das opções disponíveis, você pode opcionalmente passar determinado sinalizador para a função tiny_log() como o segundo argumento. Se você também precisar passar o tipo de erro, basta separá -los com o tubo | personagem. Veja o exemplo com a opção pos :
tiny_log ( ' Some error message ' , ' pos ' ); // just passing option
tiny_log ( ' Some error message ' , ' pos|error ' ); // 'pos' option with error type 'error'
tiny_log ( ' Some error message ' , ' pos|info ' ); // 'pos' option with error type 'info' pos - Mostre a posição do logger. Em qual arquivo e em que número de linha é. É útil quando você está depurando, não esquecer onde você coloca seu registrador. Veja o exemplo de saída: [2020-01-12 04:09:16] info: Some log message goes here
>>> /var/www/html/app/Services/App.php on line: 77.
O Logger Tiny permite enviar logs como um objeto JSON em um terminal específico. Para ativar esta opção, você precisa ligar para o método enablePostRequest na classe Logger . Para desativar a solicitação de pós -solicitação, use o método disablePostRequest .
use Serhii TinyLogger Logger ;
Logger:: enablePostRequest ( ' http://my-site.com/webhook ' ); Agora, se ocorrer um erro, o JSON será enviado para http://my-site.com/webhook endpoint com solicitação de postagem.
{
"timestamp" : " 1611675632 " ,
"message" : " Undefined variable at line 24 in \ App \ Models \ User class. " ,
"type" : " error "
} Se você precisar personalizar a estrutura do objeto JSON, poderá passar a matriz como o segundo argumento no método enablePostRequest .
use Serhii TinyLogger JsonFieldValue ;
use Serhii TinyLogger Logger ;
Logger:: enablePostRequest ( ' http://my-site.com/webhook ' , [
' time ' => JsonFieldValue:: TIMESTAMP ,
' errorMessage ' => ' Error message: ' . JsonFieldValue:: MESSAGE ,
' errorType ' => JsonFieldValue:: ERROR_TYPE ,
' token ' => getenv ( ' MY_AUTH_TOKEN ' )
]);Agora você terá o JSON assim:
{
"time" : " 1611675632 " ,
"errorMessage" : " Error message: Undefined variable at line 24 in \ App \ Models \ User class. " ,
"errorType" : " error " ,
"token" : " 29d62x7g656e6f9 "
}Cada constante JsonFieldValue será substituída por seu valor. Por exemplo, JSONFIFFILEDVALUE :: A mensagem será substituída pela mensagem de erro. JsonFieldValue :: Timestamp será substituído pelo Timestamp de erro.
NOTA: Se você deseja usar o Logger em um script cron ou algo como o WordPress Hook, precisará ligar para
enablePostRequestna primeira etapa da execução do script.
Para instalar todas as dependências do PHP, você precisa ter o gerenciador de pacotes PHP do compositor instalado em sua máquina. Então você precisa executar o comando abaixo no diretório raiz do projeto.
composer require serhii/tiny-logger