1、本文使用Serilog进行记录日志,目前想只用log4net进行日志记录,但是Serilog有想学习一下,所有这里使用控制台项目来学习一下Serilog。我使用的还是.Net Framework 4.5.
2、NuGet 安装Serilog 2.12.0、Serilog.Sinks.Console 4.1.0,如下图。
3、代码示例。
3.1、将信息输入到控制台,代码如下。
using Serilog;
using Serilog.Sinks.SystemConsole;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleAppSerilog
{
class Program
{
static void Main(string[] args)
{
//1、输出信息到控制台
ILogger logger = new LoggerConfiguration().WriteTo.Console().CreateLogger();
logger.Information("信息日志");
Console.ReadKey();
}
}
}
运行效果如下图。
3.2、将日志信息输出到文件,添加NuGet Serilog.Sinks.File 4.1.0,如下图。
示例代码如下。其中自动创建Log文件夹;rollingInterval:RollingInterval.Day,log文件名后自动添加当天日期
using Serilog;
using Serilog.Sinks.SystemConsole;
using Serilog.Sinks.SystemConsole.Themes;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleAppSerilog
{
class Program
{
static void Main(string[] args)
{
//1、输出信息到控制台
ILogger logger = new LoggerConfiguration()
.WriteTo.Console(theme:AnsiConsoleTheme.Code)
.WriteTo.File(@"Log/log.txt",rollingInterval:RollingInterval.Day,rollOnFileSizeLimit:true)//自动创建Log文件夹;rollingInterval:RollingInterval.Day,log文件名后自动添加当天日期
.CreateLogger();
logger.Information("信息日志");
Console.ReadKey();
}
}
}
效果如下图。
3.3、将日志以json数据形式打印到控制台和文件中,效果如下图。
创建一个LogInfo类,代码如下。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleAppSerilog
{
public class LogInfo
{
public int Index { get; set; }
public string Description { get; set; }
}
}
Main函数代码如下。
using Serilog;
using Serilog.Sinks.SystemConsole;
using Serilog.Sink