在log4net的配置中,appender是最重要的部分,一般来说,每一种appender都表示一种日志的输出介质,如日志文件、EvengLog、数据库、控制台、邮件、ASP.NET页面等。log4net.SignalR是一个把Log4Net Event 从服务器发送到客户端页面的log4Net appender. 它通过SignalR异步信号库将事件实时通过流传送到客户端,并保持持久的连接。

log4net.SignalR 可以用来为你的网站建立一个日志查看器。它的使用非常简单:

1、在项目中添加log4net.SignalR.dll.这个可以通过Nuget工具

2、配置log4net.SignalR 作为Log4Net的appender

<log4net debug="true">
    <appender name="SignalrAppender" type="log4net.SignalR.SignalrAppender">
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date %-5level - %message%newline" />
        </layout>
    </appender>
    <root>
        <appender-ref ref="SignalrAppender" />
    </root>
</log4net>

3、用一个页面来侦听Log4Net的事件

添加一些jQuery 文件到的ASP.NET页面接收服务器上引发的事件。设置好SignalrAppender,把log4net的服务器上记录的所有事件都将被发送到浏览器JavaScript函数中执行。

<head>
    <title>Log4Net.SignalR</title>
    <link rel="stylesheet" type="text/css" href="@Url.Content("~/Resources/bootstrap.min.css")" />
    <script type="text/javascript" src="@Url.Content("~/Scripts/jquery-1.7.2.min.js")"></script>
    <script type="text/javascript" src="@Url.Content("~/Scripts/jquery.signalR-0.5.2.min.js")"></script>
    <script src="/signalr/hubs" type="text/javascript"></script>
    <style>
        body {
            padding-top: 60px;
        }
    </style>
</head>

<table id="log-table" class="log">
    <thead>
        <tr>
            <th>
                Date
            </th>
            <th>
                Level
            </th>
            <th style="width: 100%">
                Details
            </th>
        </tr>
    </thead>
    <tbody>
    </tbody>
</table>
<script type="text/javascript">
    $(function () {
        var log4net = $.connection.signalrAppenderHub;

log4net.onLoggedEvent = function (loggedEvent) {
            var dateCell = $("<td>").css("white-space", "nowrap").text(loggedEvent.TimeStamp);
            var levelCell = $("<td>").text(loggedEvent.Level);
            var detailsCell = $("<td>").text(loggedEvent.Message);
            var row = $("<tr>").append(dateCell, levelCell, detailsCell).addClass(loggedEvent.Level.toLowerCase());
            $('#log-table tbody').append(row);
        };

$.connection.hub.start(function () {
        });

});
</script>

http://www.woohoo.uk.com/Blog/adding-real-time-statistics-to-surveywizz-using-signalr

log4net.SignalR - 日志即时发送客户端页面相关推荐

  1. python processpoolexector 释放内存_一起看看python 中日志异步发送到远程服务器

    在python中使用日志最常用的方式就是在控制台和文件中输出日志了,logging模块也很好的提供的相应的类,使用起来也非常方便,但是有时我们可能会有一些需求,如还需要将日志发送到远端,或者直接写入数 ...

  2. Raft 集群成员变更、日志压缩、客户端交互

    Raft 集群成员变更.日志压缩.客户端交互 集群成员变更 在集群服务器发生变化时,不能一次性的把所有的服务器配置信息从老的替换为新的,因为,每台服务器的替换进度是不一样的,可能会导致出现双主的情况, ...

  3. cmd中的进度如何捕捉到输出内容_python 中日志异步发送到远程服务器

    在python中使用日志最常用的方式就是在控制台和文件中输出日志了,logging模块也很好的提供的相应的类,使用起来也非常方便,但是有时我们可能会有一些需求,如还需要将日志发送到远端,或者直接写入数 ...

  4. (求助)即时发送异常给开发人员

    在项目完成初期,用户使用不可避免的会发生错误或者异常, 如何使开发人员更及时更准确地获得用户使用的情况, 会对项目质量,进度,客户满意程度产生不小的影响. 所以,我想实现这样一个功能,当程序执行中,捕 ...

  5. Log4Net异常日志记录在asp.net mvc3.0的应用

    前言 log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.本文主要是简单的介绍如何在Visual ...

  6. ios即时通讯客户端开发之-mac上搭建openfire服务器

    CHENYILONG Blog ios即时通讯客户端开发之-mac上搭建openfire服务器 转自:月光的尽头 ios即时通讯客户端开发之-mac上搭建openfire服务器 一.下载并安装open ...

  7. NTP组播模式配置和日志信息发送到Linux日志主机的配置

    NTP组播模式配置 如图所示,网络中有一台时间服务器SW3,网络中设备较多,而且这些设备分布在不同网段中,为了便于管理,现要求配置NTP组播模式,使网络中的设备拥有统一,一致的时间. #SW3配置 # ...

  8. log4j中将SocketAppender将日志内容发送到远程服务器

    1.服务端配置 1)服务端配置文件log4j-server.properties #Define a narrow log category. A category like debug will p ...

  9. signalr php,继SignalR 持久链接 Web客户端

    简单聊天程序 .container{background-color:#99CCFF;border:thick solid #808080;padding:20px;margin:20px; } Ec ...

最新文章

  1. 三个activity之间跳转 数据传递_第二百四十二回:Android中Fragment之间的数据传递概述...
  2. 61条面向对象设计的经验原则
  3. Vue + Element UI + Spring Boot——易班优课YOOC课群在线测试自动答题解决方案(十)问题管理页面
  4. Mac下配置Android环境
  5. 计算机文字录入培训大纲,《计算机文字录入》课程教学大纲
  6. FlasCC例子研究之hellointerop
  7. java输出5行星型三角_JAVA图形小动画之简单行星运动
  8. 汽车门店管理系统 php,大型汽车4s店维修管理系统多门店版(源码+数据库+截图)...
  9. ios打包发布testflight
  10. 系统盘清理,便携小助手一键清理系统垃圾
  11. 使用DFA算法对敏感词进行过滤
  12. 如何提升w ndows10系统网速,Win10更新后网速变慢怎么办?教你一招提升Win10网速...
  13. 歌曲排行榜html页面,音乐组合排行板_音乐排行榜网页模板
  14. Hbuilder中如何快速输入注释标签_vscode中20个让人眼前一亮的插件
  15. python程序设计基础(山东联盟)_知到APPPython程序设计基础(山东联盟)考试期末答案...
  16. Spark SQL编程之RDD-RDD转换
  17. Intellij IDEA导入外部项目javax.servlet.http不存在
  18. c语言程序设计实验与习题指导 第2版,C语言程序设计实验与习题指导(第2版)参考答案.doc...
  19. python异常捕获和写到mysql_python捕获数据库异常
  20. RestfulCRUD 规范

热门文章

  1. mysql 8.0 集群_集群架构03·MySQL初识,mysql8.0环境安装,mysql多实例
  2. java httpclient教程_HttpClient4.5.2 HTTP协议的请求和执行
  3. maven依赖,聚合和继承
  4. ObjectFactory对象工厂类
  5. 文明重启服务器维护怎么卡进去,文明重启更新之后进不去,具体玩法介绍
  6. anaconda3 win7_重装系统win7
  7. Bypass WAF实战总结
  8. 记一次偶遇Adminer
  9. 《剑指offer》扑克牌顺序
  10. 数据挖掘之关联分析三(规则的产生)