log4net.SignalR - 日志即时发送客户端页面

在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>

本文来自合作伙伴“doNET跨平台”,了解相关信息可以关注“opendotnet”微信公众号

时间: 2024-12-29 18:33:09

log4net.SignalR - 日志即时发送客户端页面的相关文章

asp.net2.0奇怪问题,在公网访问,页面会间歇性下载不完整,即时不时客户端页面只下载到一部分就没反应空白了?

问题描述 asp.net2.0奇怪问题,在公网访问,页面会间歇性下载不完整,即时不时客户端页面只下载到一部分就没反应空白了?这是不是与iis有关还是asp.net的设置有关?不知道大家有没有遇到? 解决方案 解决方案二:顶一下

Pidgin v2.7.11发布 多协议即时通讯客户端

pidgin是一个可以http://www.aliyun.com/zixun/aggregation/32995.html">在Windows.Linux.BSD和Unixes下运行的多协议即时通讯客户端,可以让你用你所有的即时通讯帐户中一次登录.pidgin是免费软件.它使用GNU通用公共许可证(GPL)第2版.这意味着你可以自由使用它,并修改它,但如果修改,必须开源修改过的源代码. pidgin 2.7.11更新日志如下: General: Our bundled libgadu sh

Pidgin v2.7.11发布 跨平台的即时通讯客户端

Pidgin(前称Gaim)是一个跨平台的即时通讯客户端,使用GNU通用公共许可证发布.这款软体支援多个现时常用的即时通讯协定,让用户可以用同一个软体登入不同的即时通讯服务.截至2007年,Pidgin约有三百万名用户. pidginhttp://www.aliyun.com/zixun/aggregation/32995.html">在Windows系统用户中知道的不多,不过在Linux系统中可以说是鼎鼎大名.这款软件可以实现多种即时通讯软件之间的互联互通,对于国人来说,其中最重要的就是

发送信息页面send.asp--基于web的QQ程序3(only asp)

web|程序|页面   发送信息页面send.asp--基于web的QQ程序3(only asp)<html><head><title>发送信息页面</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><%if request("text")="&q

发送信息页面send.asp--基于web的QQ程序3

web|程序|页面 <html><head><title>发送信息页面</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><%if request("text")="" then%><body bgcolor="#F

发送信息页面send.asp--基于web的QQ程序

web|程序|页面 <html> <head> <title>发送信息页面</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><%if request("text")="" then%><body bgcolor="

android新闻客户端 页面 翻滚 方法的理解

问题描述 android新闻客户端 页面 翻滚 方法的理解 scrollTo(1 1) 里面的 1 ,1表示什么意思呢? 右侧可以实现向下翻滚的效果 解决方案 这个要看它怎么定义的,不是系统类库.应该是表示位置的参数

用VS2010编写好网站后,用什么软件进行客户端页面的布局啊?

问题描述 用VS2010编写好网站后,用什么软件进行客户端页面的布局啊? 解决方案 解决方案二:别用VS2010了,改用VS2013吧,2010在文档开关处引入的HTML是XHTML,现在都是HTML5了.解决方案三:使用你编写网站的那个软件.解决方案四:用VS2010编写好网站后,这个编写好都写得啥呢?怎么还会要客户端页面的布局呢?如果是样式调整,那就青菜萝卜各有所爱了,VS,Dreamweaver,浏览器,记事本,全都可以解决方案五:遇到这种需求,你就该考虑站点的布局是不是要做成可配置的.在

IE8/IE9浏览器中发送“电子邮件页面”选项为灰色怎么办

通常出现这样的问题,是因为电脑中安装的电子邮件程序未设定为默认电子邮件程序,因为找不到默认的邮件程序,所以IE中发送"电子邮件页面"选项为灰色不可选状态.   首先请按一下[开始]按钮,然后按一下[默认程序]:     然后请按一下[设置程序访问和计算机默认值]:     然后按一下[自定义],展开选项:     然后请选取您所使用的电子邮件,完成之后按一下[确定]:     现在就可以正常使用[发送电子邮件页面]的功能了.   上面的操作适用于Windows 7系统中的IE8/IE9