日志分析工具--花两天时间为自己开发个小工具值得吗?

这两天忙里偷闲整理开发了个小的日志分析工具,没错,是给自己使用的,工欲善其事必先利其器。

先说一下痛点,

1、经常会遇到需要在外网服务器上调试的情况,此时只能通过日志来调试信息。

2、当使用记事本打开日志文件后,如果有新日志信息的话,记事本并不能自动刷新,需要关闭后重新打开才行,叠加升级时可能已经将日志所在的文件夹窗口关闭,从而需要重新找到日志文件夹,然后再打开日志文件并且翻到最底部才能看到最新的日志内容,这个过程就很繁琐,经常性出现任务栏有几十个记事本程序在运行(忘记关闭),偶尔还会因为日志版本问题导致看错。

3、另外,日志内容会随着调试越来越多,尤其是当我打开日志的debug模式后,日志内容增长的更快。这时想从日志文件中找一条自己想要看到的内容还是比较难的,看的眼花缭乱,虽然记事本可以搜索,但效果并不好,而且无法按日志级别筛选。

4、如果像我这种可以远程服务器,直接到服务器中打开日志文件的话,就很不友好,调试个日志需要通过远程操作,既费流量,又费神。

5、如果碰到无法远程的服务器调试时,这就遇到了问题,所以如果能够远程读取和分析日志就好了,此时想到了ftp,使用ftp将日志下载下来看也能解决问题,但是依然比较繁琐。

6、如果服务器无法使用ftp时也是个问题。

综上所述,如果能做个小工具解决以上痛点,日后开发工作必定事半功倍吧!

功能如下:

1、支持自动刷新,并且刷新后需要自动跳到最底部;支持手动刷新;

2、支持自动获取当前文件夹下的最新日志文件;

3、支持对日志级别进行过滤;

4、支持输入关键字进行过滤;

5、可以手动选择切换日志文件;

6、支持ftp模式,通过ftp支持以上所有功能;

7、支持http模式,允许不支持ftp功能的时候,通过http来访问;

8、支持随时手动切换三种模式;

9、支持浏览ftp文件;支持浏览http文件;

10...

一开始想着做个本地的简易日志分析工具,结果做完了感觉不过瘾,然后又抓紧增加了ftp功能,这样就可以再本地检测服务器的日志内容,结果发现电脑设置了代理,ftp不支持访问,无奈之下,又去开发了一个http端的服务器端代码,然后使用http方式来分析日志。

public class AppConfigModel
{
    public int Mode = 1;//1本地,2ftp,3http
    public LocalConfigModel LocalConfig { set; get; }
    public FtpConfigModel FtpConfig { set; get; }
    public HttpConfigModel HttpConfig { set; get; }
}
public class HttpConfigModel
{
    public string BaseUrl { set; get; }

    public string Path { set; get; }

    public string Filename { get; set; }

    public string Username { set; get; }

    public string Password { set; get; }
}
public class LocalConfigModel
{
    public string Filename {set; get; }
}
#region 获取上级文件夹目录

public static string GetParentPath(string path,int parentNum = 1, bool trimEnd = false)
{
    var paths = path.Split('\\', '/');
    var parentPath = "";
    paths = paths.Where(d => !string.IsNullOrWhiteSpace(d)).ToArray();
    for (var i = 0; i < paths.Length - parentNum; i++)
    {
        parentPath += paths[i] + (paths[i].StartsWith("ftp:") ? "//" : "/");
    }
    if (trimEnd)
    {
        parentPath = parentPath.TrimEnd('\\', '/');
    }
    return parentPath;
}
#endregion

===========自动刷新效果动画==============

===========网络文件管理动画效果==============

 

ftp模式截图:

 

 本地模式截图:

 

 HTTP模式截图:

 

 浏览和选择网络文件:

 

 FTP配置:

 

HTTP配置:

 

 

 工作模式切换功能:

 

 日志级别筛选功能:

posted @ 2023-01-10 17:43  杨浩瑞  阅读(100)  评论(0编辑  收藏  举报