zoukankan      html  css  js  c++  java
  • log4net.SignalR 日志即时发送客户端页面

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

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

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

    image

    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=" 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

    欢迎大家扫描下面二维码成为我的客户,为你服务和上云

  • 相关阅读:
    【Web前端】用CSS3实现弹幕
    清除float影响
    用send_keys输入文本的方法
    使用装饰器实现测试跳过和预期故障的方法
    python的logging日志模块
    Ubutnu linux 下升级python版本,以2.x升级到3.x为例
    如何生成HTMLTestRunner报告
    用java和junit编写app自动化测试用例
    用python和unittest编写app自动化测试用例
    appium自动化测试等待的三种方法
  • 原文地址:https://www.cnblogs.com/shanyou/p/2571483.html
Copyright © 2011-2022 走看看