The Elasticsearch target works best with the BufferingWrapper target applied.
By default the target assumes an Elasticsearch node is running on the localhost on port 9200.
See wiki for parameters.
<nlog> <extensions> <add assembly="NLog.Targets.ElasticSearch"/> </extensions> <targets> <target name="elastic" xsi:type="BufferingWrapper" flushTimeout="5000"> <target xsi:type="ElasticSearch"/> </target> </targets> <rules> <logger name="*" minlevel="Info" writeTo="elastic" /> </rules> </nlog>
Versioning follows elasticsearch versions. E.g.
Version | Elasticsearch Version | NLog Version |
---|---|---|
7.x | 7.x | 4.6.x |
6.x | 6.x | 4.5.x |
Unhandled Exception: System.TypeInitializationException: The type initializer for ‘NLogTest.Program‘ threw an exception. ---> NLog.NLogConfigurationException: Exception when parsing C:\Users\clu\source\repos\NLogTest\NLogTest\bin\Debug\NLog.config. ---> NLog.NLogConfigurationException: Target ‘elastic‘ not found for logging rule: *.
at NLog.Config.LoggingConfigurationParser.ParseLoggingRuleTargets(String writeTargets, LoggingRule rule)
at NLog.Config.LoggingConfigurationParser.ParseRuleElement(ILoggingConfigurationElement loggerElement)
at NLog.Config.LoggingConfigurationParser.ParseRulesElement(ILoggingConfigurationElement rulesElement, IList`1 rulesCollection)
at NLog.Config.LoggingConfigurationParser.LoadConfig(ILoggingConfigurationElement nlogConfig, String basePath)
at NLog.Config.XmlLoggingConfiguration.ParseNLogElement(ILoggingConfigurationElement nlogElement, String filePath, Boolean autoReloadDefault)
at NLog.Config.XmlLoggingConfiguration.ParseTopLevel(NLogXmlElement content, String filePath, Boolean autoReloadDefault)
at NLog.Config.XmlLoggingConfiguration.Initialize(XmlReader reader, String fileName, Boolean ignoreErrors)
--- End of inner exception stack trace ---
at NLog.Config.XmlLoggingConfiguration.Initialize(XmlReader reader, String fileName, Boolean ignoreErrors)
at NLog.Config.XmlLoggingConfiguration..ctor(XmlReader reader, String fileName, LogFactory logFactory)
at NLog.Config.LoggingConfigurationFileLoader.LoadXmlLoggingConfiguration(XmlReader xmlReader, String configFile, LogFactory logFactory)
at NLog.Config.LoggingConfigurationFileLoader.LoadXmlLoggingConfigurationFile(LogFactory logFactory, String configFile)
at NLog.Config.LoggingConfigurationFileLoader.TryLoadLoggingConfiguration(LogFactory logFactory, String configFile, LoggingConfiguration& config)
at NLog.Config.LoggingConfigurationFileLoader.TryLoadFromFilePaths(LogFactory logFactory, String filename)
at NLog.Config.LoggingConfigurationFileLoader.Load(LogFactory logFactory, String filename)
at NLog.Config.LoggingConfigurationWatchableFileLoader.Load(LogFactory logFactory, String filename)
at NLog.LogFactory.get_Configuration()
at NLog.LogFactory.GetLoggerThreadSafe(String name, Type loggerType)
at NLog.LogManager.GetCurrentClassLogger()
at NLogTest.Program..cctor() in C:\Users\clu\source\repos\NLogTest\NLogTest\Program.cs:line 10
--- End of inner exception stack trace ---
at NLogTest.Program.Main(String[] args)
原文:https://www.cnblogs.com/chucklu/p/13266711.html