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>
?
http://www.woohoo.uk.com/Blog/adding-real-time-statistics-to-surveywizz-using-signalr
總結
以上是生活随笔為你收集整理的log4net.SignalR - 日志即时发送客户端页面的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深入 Lucene 索引机制
- 下一篇: 巧妙的查看FORM中的 LOV查询语句