美文网首页C#.NETdotNET
24*7*365 web 系统建设<二>——统一日志

24*7*365 web 系统建设<二>——统一日志

作者: 诸葛_小亮 | 来源:发表于2017-01-08 17:09 被阅读382次

参考
1.247365 web 系统建设<一>——nginx+iis实现负载均衡
2.Exceptionless搭配log4net记录日志
3.Exceptionless 本地部署
4.Exceptionless 本地部署 官方文档

源代码:https://git.oschina.net/zhaord/DispersedDemo.git


介绍

通过参考1,可以搭建基本的web负载均衡,在结尾也提出了几个可能的问题,这篇文章,主要是针对其中的一个问题:日志,而给出的解决方案


部署 exceptionless 本地服务

官方的exceptionless 是有存储限制的,所以,最后将 exceptionless 部署到本地,具体部署教程可以看 参考3、参考4


配置 exceptionless log4net

打开web.config文件,修改后的内容如下

  <section name="exceptionless" 
             type="Exceptionless.Log4net.ExceptionlessAppender,Exceptionless.Log4net" />
  

打开log4net.config文件,配置后的内容如下

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
  <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender" >
    <file value="App_Data/Logs/Logs.txt" />
    <appendToFile value="true" />
    <rollingStyle value="Size" />
    <maxSizeRollBackups value="10" />
    <maximumFileSize value="10000KB" />
    <staticLogFileName value="true" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%-5level %date [%-5.5thread] %-40.40logger - %message%newline" />
    </layout>
  </appender>
  <!--使用 exceptionless-->
  <appender name="exceptionless" type="Exceptionless.Log4net.ExceptionlessAppender,Exceptionless.Log4net" />

  <root>
    <appender-ref ref="RollingFileAppender" />
    <!-- 添加 exceptionless-->
    <appender-ref ref="exceptionless"/>
    <level value="DEBUG" />
  </root>
  <logger name="NHibernate">
    <level value="WARN" />
  </logger>
</log4net>

使用 exceptionless

在方法 Application_Start中添加初始化exceptionless的代码

        protected override void Application_Start(object sender, EventArgs e)
        {
            AbpBootstrapper.IocManager.IocContainer.AddFacility<LoggingFacility>(
                f => f.UseAbpLog4Net().WithConfig("log4net.config")
            );
            ExceptionlessClient.Default.Configuration.ApiKey="API_KEY";
ExceptionlessClient.Default.Configuration.ServerUrl = "http://localhost:8004/";

            base.Application_Start(sender, e);
        }

注意 ServerUrl 的属性,最后一个的 '/' 一定要有,否则会发送不到采集系统


运行结果

首先部署参考1程序到三个站点,然后分布启动站点,运行nginx,并访问 http://127.0.0.1:10080/account/login.
通过在浏览器访问 exceptionless ,发现以下内容

图片.png

通过日志,我们可以清楚的看到,访问网站的请求,是被均衡到三个站点上的,并且也实现了三个站点的日志收集,通过exceptionless,可以实现分布式系统的日志收集。


总结

通过学习和使用 exceptionless,我们可以搭建 分布式系统的日志采集,进而统一分布部署的日志内容,可以帮助我们分析日志和查看日志内容。


QQ:1260825783
如有任何关于本文章的问题,都可以通过此QQ联系我!

我的公众号

我的公众号

``

相关文章

网友评论

    本文标题:24*7*365 web 系统建设<二>——统一日志

    本文链接:https://www.haomeiwen.com/subject/gonqbttx.html