2014-06-12 9 views
5

Próbuję użyć kilku dodatkowych elementów (nazwa komputera i identyfikator wątku na razie) w połączeniu z ruchomym zlewem i zlewem Loggly. Podczas gdy zdarzenia Loggly poprawnie zawierają właściwości nazwy komputera i identyfikatora wątku, nie widzę ich w zdarzeniach dotyczących plików zmiennych.Nazwa maszyny Serilog wzbogacona o zwijanie pliku Zablokuj plik

Oto moja konfiguracja xml/code:

<add key="serilog:minimum-level" value="Information" /> 
<add key="serilog:write-to:RollingFile.pathFormat" value="C:\Foo\bar-{Date}.txt" /> 
<add key="serilog:using" value="Serilog.Sinks.Loggly" /> 
<add key="serilog:write-to:Loggly.inputKey" value="redacted Loggly key" /> 

new LoggerConfiguration() 
    .ReadAppSettings() 
    .Enrich.WithMachineName() 
    .Enrich.WithThreadId() 
    .CreateLogger() 

Czy ktoś udaje się to zrobić? Czy to zachowanie może być zgodne z projektem, czy też nie są one obsługiwane w przypadku zwijanych plików?

Odpowiedz

13

Nazwa maszyny i wątek są dodawane jako właściwości do wszystkich zdarzeń dziennika. Nie ma ich w komunikacie, więc serolog nie zamienia ich na tekstową reprezentację. Zostaną one jednak wysłane do zlewów. Zlew Loggly wybierze wszystkie właściwości (w tym identyfikator wątku itp.) I przekształci je w coś, co Loggly rozumie (ponieważ może akceptować wszelkiego rodzaju dane).

Jeśli chcesz, aby ujście RollingFile również wyprowadzało nazwę maszyny itp., Musisz dostosować szablon wyjściowy. Więc ustawienie go na przykład w ten sposób:

outputTemplate: "{Timestamp:HH:mm} [{Level}] {MachineName} ({ThreadId}) {Message}{NewLine}{Exception}" 

Zobacz także https://github.com/serilog/serilog/wiki/Configuration-Basics#enrichers

Ponieważ walcowanie zlew plik nie ma możliwości wyjścia wszystkich właściwości, można dostać tylko renderowany wiadomość, która domyślnie nie zawiera tych właściwości .

+0

To ma teraz sens. Sądzę, że wciąż mentalnie przechodzę z klasycznego logowania do tej koncepcji "rejestrowania obiektów". – CyberDude

+0

Zlew RollingFile to szybki sposób na wyprowadzanie danych, rzeczywistą moc, gdy przechowuje się ją w Seq, ElasticSearch lub innym usługodawcy loggingowym, takim jak Loggly. Następnie możesz uzyskać dostęp do wszystkich metadanych, analiz, wyszukiwań itp. – Michiel

+0

Tak, używamy Loggly również, ale wydaje się nieco powolny i trudny do skonfigurowania, dzięki czemu można szybko dowiedzieć się, czego szukasz. – CyberDude