szukam sposobu, aby zalogować ekspresyjne wiadomości kiedy złapać wyjątek z NLog 2.0.1, cośnlog argumenty za errorException wiadomości
try {
....
}
catch(Exception ex) {
logger.ErrorException("Error with query {0}", query, ex);
}
Ale NLog nie obsługuje. Inne formy, które zdarzyło mi się
logger.ErrorException( String.Format("Error with query {0}", query)) , ex);
lub
logger.Error("Error with query {0} {1} {2}", query, ex.Message, ex.StackTrace);
lub
logger.Error("Error with query {0}", query);
logger.ErrorException("", ex);
lub
LogEventInfo ei = new LogEventInfo(LogLevel.Error, logger.Name, null,
"Error with query {0}", new object[] { query }, ex);
logger.Log(ei);
Ale nikt wydaje się tak proste jak wywołania logger.Error()
Obecnie pierwsza opcja jest mój favority mimo formatu ciąg znaków, który może nie będzie używany:
- druga opcja nie korzystać z opcji układu dla exceptions.
- Trzeci tworzy dwa wpisy w dzienniku i być może będzie mylący.
- Czwarta opcja jest znacznie mniej czytelna.
Jest coś więcej?
'String.Format (" Błąd z zapytaniem% s ", zapytanie)' Czy to C#? –
ups .. Zrobiłem z java. Edytowane – Narkha
Dlaczego po prostu nie napisać metody rozszerzenia? –