Come si scrive un layout per NLog che emette il tempo con millisecondi come questo 11:32:08:123
? Io uso ${date:format=yyyy-MM-dd HH\:mm\:ss}
ma ho bisogno di più precisione nel tempo nei miei registri.Formattazione ora NLog
risposta
${date:format=yyyy-MM-dd HH\:mm\:ss.fff}
Secondo il NLog documentation, è possibile utilizzare stringa di formato C# DateTime.
Questo è un buon riferimento per stringhe di formato DateTime: http://www.geekzilla.co.uk/View00FF7904-B510-468C-A2C8-F859AA20581F.htm
${longdate}
Un'altra alternativa per schema suggerito da harriyott è quello di utilizzare il $ {} longdate renderer. Dovrebbe automaticamente darti la precisione di cui hai bisogno.
'$ {longdate}' funziona alla grande, ma sii consapevole del fatto che * si deve * definire la colonna del database come 'datetime2' piuttosto che' datetime' o NLog genererà un'eccezione quando si tenta di memorizzare il valore 'longdate'. – Nick
Un'altra soluzione alternativa è utilizzare il formato ISO 8601 "1998-02-23T14: 23: 05.555". Questo formato è indipendente dalla lingua del server sql.
${date:format=yyyy-MM-ddTHH\:mm\:ss.fff}
Se si sta cercando un formato solo per il tempo lungo, utilizzare '$ {tempo}'. (Come non ho individuato l'ultima volta che ho cercato? [Renderizzatori di layout di NLog] (https://github.com/NLog/NLog/wiki/Layout-Renderers)) –