Es.Logging抽象出.Net平台的日志通用接口,自身并没有日志处理实现,默认实现了NLog、Log4net、Microsoft.Extensions.Logging和console standard output支持。
通常日志的实例我们都在构造函数中创建
publicclassFoo{privatereadonlyILogger_logger;publicFoo(){_logger=LoggerManager.GetLogger<Foo>();}}但是很多时候我们也许会在静态类使用,也许Logger静态实例在没有LoggerProvider时候可能会失效,Es.Logging现在已经支持。
publicstaticclassFoo{privatestaticreadonlyILogger_logger=LoggerManager.GetLogger<Foo>();}- 聚合.NET平台常用日志类库
- 已有静态
Logger实例支持后期追加的LoggerProvider - 支持
Unix&Windows控制台输出 - 支持
NLog - 支持
Log4net - 支持
Serilog - 支持
Microsoft.Extensions.Logging
| Package | NuGet |
|---|---|
| Es.Logging | |
| Es.Logging.Console | |
| Es.Logging.NLog | |
| Es.Logging.Log4 | |
| Es.Logging.Serilog | |
| Es.Microsoft.Logging |
标准控制台输出
usingEs.Logging;publicstaticclassFoo{//static Logger instanceprivatestaticreadonlyILogger_logger=LoggerManager.GetLogger<Foo>();privatestaticvoidMain(string[]args){//add console outputLoggerManager.Factory.AddConsole(LogLevel.Trace);//logger info_logger.Info("Es.Logging");}}推荐使用NLog
usingEs.Logging;publicstaticclassFoo{//static Logger instanceprivatestaticreadonlyILogger_logger=LoggerManager.GetLogger<Foo>();privatestaticvoidMain(string[]args){//init NLog configLoggingConfigurationconfig=newLoggingConfiguration();ColoredConsoleTargetconsoleTarget=newColoredConsoleTarget();config.AddTarget("console",consoleTarget);LoggingRulerule=newLoggingRule("*",NLog.LogLevel.Trace,consoleTarget);config.LoggingRules.Add(rule);LogFactoryfactory=newLogFactory(config);//add NLog Provider_logFactory.AddNLog(factory);//logger info_logger.Info("Es.Logging");}}更多请查看Sample
See LICENSE for details.