项目需求
asp.net core 读取log目录下的.log文件,.log文件的内容如下:
xxx.log
------------------------------------------begin---------------------------------
写入时间:2018-09-11 17:01:48
userid=1000
golds=10
-------------------------------------------end---------------------------------
一个 begin end 为一组,同一个.log文件里 userid 相同的,取写入时间最大一组值,所需结果如下:
UserID Golds RecordDate 1001 20 2018/9/11 17:10:48 1000 20 2018/9/11 17:11:48 1003 30 2018/9/11 17:12:48 1002 10 2018/9/11 18:01:48 1001 20 2018/9/12 17:10:48 1000 30 2018/9/12 17:12:48 1002 10 2018/9/12 18:01:48
项目结构
Snai.File.FileOperation Asp.net core 2.0 网站
项目实现
新建Snai.File解决方案,在解决方案下新建一个名Snai.File.FileOperation Asp.net core 2.0 空网站
把log日志文件拷备到项目下
修改Startup类的ConfigureServices()方法,注册访问本地文件所需的服务,到时在中间件中通过构造函数注入添加到中间件,这样就可以在一个地方控制文件的访问路径(也就是应用程序启动的时候)
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IFileProvider>(new PhysicalFileProvider(Directory.GetCurrentDirectory()));
}
新建 Middleware 文件夹,在 Middleware下新建 Entity 文件夹,新建 UserGolds.cs 类,用来保存读取的日志内容,代码如下
namespace Snai.File.FileOperation.Middleware.Entity
{
public class UserGolds