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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM