Qual é a maneira apropriada para os aplicativos (por exemplo, Node) fazerem login no Linux? Com o Windows, há o log de eventos no qual os aplicativos podem gravar.
Devemos apenas criar arquivos de log var/logpara cada aplicativo?
O uso da API syslog() enviará mensagens para o logger do sistema atualmente instalado, o que permite que o administrador do sistema filtre mensagens, aplique políticas de rotação, encaminhe para um servidor remoto e assim por diante.
O módulo Node correspondente parece ser node-syslog , mas você pode implementá-lo manualmente enviando mensagens para o /dev/logsoquete Unix.
Muitas distribuições do Linux também possuem o systemd-journal com sua própria API , que permite que os metadados sejam anexados (por exemplo, todas as mensagens sobre uma única solicitação podem ser marcadas com um campo de metadados "MYAPP_REQUEST_ID=[...]" e facilmente consultadas mais tarde).
Existe um módulo Node chamado systemd-journald que fornece acesso a essa API.
Uma opção simples é gravar todas as mensagens de log em stderr. Idealmente, deve usar um formato simples com apenas uma mensagem por linha – sem cores, sem carimbos de data/hora, sem prefixos/marcadores sofisticados; o gerente de serviço adicionará o seu próprio. Neste modo, a única coisa que você deve adicionar é o número de prioridade do estilo syslog (por exemplo, 3 correspondendo a LOG_ERR):
<3>Something bad happened.
Para mensagens de propósito geral, não é recomendado criar seu próprio arquivo e, especialmente, inventar seu próprio formato de log; isso tornará a vida mais difícil para o administrador do sistema. Por outro lado, é uma boa ideia fazer isso quando você estiver prestes a registrar grandes quantidades de mensagens que, de outra forma, sobrecarregariam o syslog. (Por exemplo, servidores da Web como o Apache registrarão todas as solicitações no arquivo /var/log/apache/access.log por padrão.)
A API tradicional em sistemas do tipo Unix é syslog(3) .
O uso da API syslog() enviará mensagens para o logger do sistema atualmente instalado, o que permite que o administrador do sistema filtre mensagens, aplique políticas de rotação, encaminhe para um servidor remoto e assim por diante.
O módulo Node correspondente parece ser node-syslog , mas você pode implementá-lo manualmente enviando mensagens para o
/dev/log
soquete Unix.Muitas distribuições do Linux também possuem o systemd-journal com sua própria API , que permite que os metadados sejam anexados (por exemplo, todas as mensagens sobre uma única solicitação podem ser marcadas com um campo de metadados "MYAPP_REQUEST_ID=[...]" e facilmente consultadas mais tarde).
Existe um módulo Node chamado systemd-journald que fornece acesso a essa API.
Uma opção simples é gravar todas as mensagens de log em stderr. Idealmente, deve usar um formato simples com apenas uma mensagem por linha – sem cores, sem carimbos de data/hora, sem prefixos/marcadores sofisticados; o gerente de serviço adicionará o seu próprio. Neste modo, a única coisa que você deve adicionar é o número de prioridade do estilo syslog (por exemplo, 3 correspondendo a LOG_ERR):
Para mensagens de propósito geral, não é recomendado criar seu próprio arquivo e, especialmente, inventar seu próprio formato de log; isso tornará a vida mais difícil para o administrador do sistema. Por outro lado, é uma boa ideia fazer isso quando você estiver prestes a registrar grandes quantidades de mensagens que, de outra forma, sobrecarregariam o syslog. (Por exemplo, servidores da Web como o Apache registrarão todas as solicitações no arquivo /var/log/apache/access.log por padrão.)