Pergunta

Estou usando o Serilog no meu site e na API da web, tudo bem.

Agora quero usar o Serilog no WCF.

Mas quando eu crio um LoggerConfiguration e crio um criador de logs no WCF, o log parece não funcionar?Por exemplo, nada está sendo enviado para o arquivo de texto.

var seriLog = new LoggerConfiguration()
    .WriteTo.File(@"C:\Serilogs\myapp.txt")
    .CreateLogger();

seriLog.Debug("log message");

Por fim, quero escrever para o Seq de dentro do serviço WCF.

O que estou perdendo ou fazendo de errado?

Alguém tem alguns exemplos de código funcional de como isso seria feito?

Existem truques para usar a pilha Serilog/Seq no WCF?

Foi útil?

Solução

Há algumas coisas que vêm à mente:

Primeiro, o código de configuração aqui está sendo executado apenas uma vez, ou seja,na inicialização do aplicativo, então há exatamente um logger apontando para o arquivo de texto?Apenas uma instância do criador de logs pode usar o arquivo por vez.

A seguir, o processo está sendo executado com permissão para acessar o arquivo?

Por último, o arquivo está aberto, por exemplo.no Bloco de Notas ou em outro aplicativo que possa estar bloqueado?

Se nada disso despertar alguma ideia, você pode configurar o auto-log do Serilog antes de configurar o logger:

SelfLog.Out = Console.Error;

Isso deve ser mostrado no depurador do VS, portanto, se o Serilog estiver capturando e suprimindo alguma exceção, você deverá vê-la.

Se você não conseguir executá-lo em um depurador, tente:

SelfLog.Out = File.OpenText(@"C:\loglog.txt");

Às vezes, acho que executar o aplicativo no depurador com "Quebrar todas as exceções" ativado também pode ser uma maneira rápida de chegar ao fundo da questão (Ctrl-D,E -> Exceções CLR [x] lançadas, [x] não tratadas ).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top