LogMaster4Net
使用LogMaster4Net实现应用程序日志的集中管理
日志在软件系统中的重要性我在此也不赘述了,几乎所有程序员每天都会更日志打交道。 那么你是否曾今为这样的一些事情而困扰过:
- 远程登录到不同的服务器,找到应用程序目然后查看应用日志;
- 来回切换于不同服务器并使用tail来实时监控日志输出信息;
- 解决在各个服务器上各个应用日积月累生成的大量日志文件造成的磁盘空间不足的问题;
如果在你的系统中存在着很多个不同的进程并且运行在多个服务器上,上面的问题将会显得尤为突出。很不幸是,笔者所在的公司的系统中,有数十个windows服务,控制台程序,计划任务同时工作在多个服务器上。 因此,笔者不胜其扰,终于开始寻找日志集中管理的解决方案。 幸运的是,一款开源的日志服务器软件 LogMaster4Net 刚好满足需求,而且正好支持笔者公司系统采用的日志组件log4net。 经过一段时间的使用,LogMaster4Net已在笔者公司稳定运行了超过半年时间。 笔者公司的日志从此规整,监控系统运行情况也比以前方便很多,查询系统运行问题也更迅速。
下面介绍一下LogMaster4Net的使用方法:
下载安装
下载地址: https://github.com/kerryjiang/LogMaster4Net/releases/tag/0.1
配置端口: 打开根目录配置文件(SuperSocket.SocketService.exe.config)设置端口号(默认为2020)
<server name="LogMasterServer" ... port="[port]" ... </server>
安装Windows服务: 命令行运行如下指令,安装成功后,如发现服务未启动请在服务列表里找到服务LogMaster4NetService并启动
SuperSocket.SocketService.exe -i
将应用程序的log4net配置文件复制到LogMaster4Net目录
LogMaster4Net可直接使用应用的日志配置文件。应用日志如有文件生成,请注意文件保存路径。 应用配置文件应存放于LogMaster4Net的Config文件夹, 相对路径如下:
\Config\log4net.[LogAppName].Config
[LogAppName] 为应用在LogMaster4Net中的唯一名称,将会在后面设置中使用。
如果 [LogAppName] 为 "QueryApp", 那么此应用的日志配置文件名为:
\Config\log4net.QueryApp.Config
此应用的日志配置内容可为:
<?xml version="1.0" encoding="utf-8" ?> <log4net> <appender name="infoAppender" type="log4net.Appender.RollingFileAppender"> <filter type="log4net.Filter.LevelRangeFilter"> <levelMin value="INFO" /> </filter> <file value="AppLogs\SampleApp\info.log" /> <encoding value="utf-8"/> <preserveLogFileNameExtension value="true" /> <appendToFile value="true" /> <rollingStyle value="Date" /> <datePattern value="yyyyMMdd" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" /> </layout> </appender> <root> <level value="ALL" /> <appender-ref ref="infoAppender" /> </root> </log4net>
应用程序日志转发设置
使用log4net的UdpAppender转发日志:
<appender name="udpAppender" type="log4net.Appender.UdpAppender"> <remoteAddress value="[ServerAddress]" /> <remotePort value="[port]" /> <layout type="log4net.Layout.XmlLayout"> <locationInfo value="true" /> </layout> </appender>
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。