A maneira clássica de fazer login em JavaScript é por meio da console.log
chamada deliciosa ; é bastante força bruta – ele registra. É isso aí. Sem mensagens de log de filtragem, sem níveis de log (ou seja, aviso, erro, etc.).
O que é bom é que o Angular nos fornece um serviço útil que envolve console.log
e é chamado, curiosamente $log
,.
$log
é um serviço simples que, quando incluído em seu código, fornece quatro métodos:
error
: para, bem, erros – também oferece um rastreamento de pilhainfo
: para mensagens informativaslog
: uh, mensagens de log?warn
: mensagens de aviso, duh
2 deles são bastante óbvios quanto à sua função: warn
& error
. Como você usa info
e log
realmente depende de você; para ser, eles são muito semelhantes. Eu normalmente uso log
para significar depuração. As informações seriam para mensagens informativas generalizadas (como um serviço dizendo “Ei, estou usando o servidor de teste”)
Obter o Angular $log
é muito simples, basta declará-lo como uma dependência em sua ‘coisa’ particular, portanto, para um controlador:
function SomeCtrl($scope, $log) {
$log.info('SomeCtrl - starting up, yeah!');
}
Filtrando essas $log
mensagens
Dito tudo isso, obter muitos registros no console pode ser um pouco como receber uma tonelada de spam. Além disso, talvez você não queira registrar tudo. Talvez você queira enviar erros para um servidor remoto.
Assim, o Angular nos fornece o conceito de ‘decoradores’ e estes nos permitem embrulhar o $log
serviço original e fornecer nossas próprias implementações (ou embrulhar as originais).
O exemplo a seguir (emprestado deste tópico do Grupo do Google ) é silencioso quando se trata de log
mensagens (porque, para mim, são mensagens de depuração) e decide solicitar qualquer mensagem.alert()
error
myApp.config(function($provide) {
$provide.decorator('$log', function($delegate, $sniffer) {
var _log = $delegate.log; //Saving the original behavior
$delegate.log = function(message) { };
$delegate.error = function(message) {
alert(msg);
}
return $delegate;
});
})
Um pouco mais de informações $log
podem ser encontradas na página de documentação Angular aqui .