Se você for produzir uma quantidade enorme de dados em qualquer prioridade diferente de debug
, é melhor que sua configuração padrão registre em um arquivo em vez de nos logs do sistema ou, no mínimo, ofereça essa possibilidade . Se esses logs estiverem depurando logs, eles devem estar desativados por padrão e impressos somente se o seu aplicativo for chamado com uma opção (na linha de comando ou em um arquivo de configuração) para informar a impressão de logs de depuração.
Se é óbvio, a partir do propósito do seu aplicativo, que ele produzirá muitos logs, tudo bem.
Você não pode consultar com confiança a configuração do nível de registro no lado do aplicativo. Alguns sistemas registram remotamente, por exemplo; então a configuração estaria em outra máquina. Mesmo se estiver na mesma máquina, um usuário não raiz pode não ter permissão para ler a configuração de registro. Se o seu aplicativo puder ser configurado para produzir quantidades razoáveis ou enormes de logs, cabe à configuração do aplicativo determinar isso.
Se você efetuar o log pelo recurso de syslog, não será necessário fazer nada para dar suporte à rotação de log. Se você efetuar login em um arquivo, precisará fornecer um meio para o aplicativo fechar e reabrir seu arquivo de log. Você pode usar SIGUSR1 ou SIGUSR2 para isso, ou mesmo SIGHUP se você não usá-lo como um sinal de terminação (para daemons, ou seja, programas que não são executados a partir de um terminal, SIGHUP normalmente significa “recarregar sua configuração”, que pode incluir reabrindo um arquivo de log). O programa de rotação de log primeiro moverá o log para um nome diferente e, em seguida, enviará o sinal para informar ao seu aplicativo para criar um novo arquivo de log.