Enterprise Library Step By Step系列(七):日志和监测应用程序块——入门篇

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:
写在前面:最近一段时间项目周期比较紧,所以这篇随笔出来的比较晚,希望喜欢本系列随笔的朋友谅解。上篇随笔写的也比较简单,我会抽时间补上的,先向大家道个歉^_^
一.日志和检测应用程序块概述:
Enterprise Library Logging and Instrumentation Application Block 版使开发人员可以在其应用程序中集成标准的日志和 监测 功能。应用程序可以使用日志和监测块在多个位置记录事件:
1 .事件日志(Event Log
2 .电子邮件(Email
3 .数据库(DataBase
4 .文本文件(TextFile
5 .消息队列(MSMQ
6 WMI
7 .用户自定义
二.日志和 监测 应用程序块在多个方面有助于应用程序的开发:
1 .它有助于在应用程序和整个企业中维护一致的日志和规范做法
2 .它使用一致的体系结构模型,使开发人员在学习过程中少走一些弯路。
3 .它提供了可用于解决常见的应用程序日志和规范问题的实现。
4 .它是可扩展的,并支持格式化程序和事件接收器的自定义实现。
三.几种常见的情况:
开发人员经常编写需要日志和 监测 功能的应用程序。通常,这些应用程序必须适当地格式化事件和记录事件,不论是在本地还是通过网络。在某些情况下,您可能需要对一台计算机上来自多个源的事件进行整理。
日志和 监测 应用程序块通过收集应用程序需要包含的多个最常见的日志和 监测 任务来简化应用程序的开发。每个任务都以一致的方式处理,并从特定的日志和 监测 提供程序中抽象应用程序代码。体系结构模型可让您通过更改配置来更改基础事件接收器和格式化程序,而无需更改应用程序代码。
四.日志项概述:
在记录日志时,都是创建一个日至项来承载记录的信息。每个日志项具有以下属性:
Message (必需项)
Cagegory (提供缺省值)
Priority (缺省值为-1
EventID (缺省值为-1
Severity (缺省值为Severity Unspecified
Title (缺省值为“”)
.几个重要概念:
Sink :日志记录的位置
Category :决定了你在程序中添加的日志写向何处,是通过配置来实现的。比如说我们有两个Category,第一个我们可以指定Sink为事件日志,第二个我们可以指定Sink为文本文件。
Formatter :格式器决定了日志记录的格式,通过配置实现,在进阶篇中我会重点去讲。
六.为应用程序添加日志:
为应用程序添加日志,步骤跟其他的应用程序块差不多,也是分为三步走:首先需要创建配置文件;在创建一个日志项对象,然后把它传给Logger.Write()方法。下面我们看一下具体的操作步骤:(同样我们认为您已经有了一个创建好的项目,并已经有了配置文件App.ConfigWeb.config
1 .运行配置工具后,选择 File | Open Application 打开应用程序的配置文件。
2 .在Application上右击并选择 New | Logging and Instrumentation Application Block

3 .日志和监测应用程序块默认的 Client Settings 定义了 in-process   distribution strategy LogginEnabledTrue

4
.日志和检测应用程序块默认的 Distributor Settings 定义了两个Category(包括GeneralTrace)。我们看到在General下的 Event Log Destination 里面它的Sink Event Log Sink 它的Formatter默认为 Text Formatter 我们可以通过右击Categorys选择 New | Category 来新建一个Category

]5
.选择 File | Save All 保存全部。
6 .最后别忘了拷贝目录。
" $(ProjectDir)\*.config "   " $(TargetDir) "
7 .在项目中添加对应用程序块的引用。
Microsoft.Practices.EnterpriseLibrary.Logging.dll
8 .在程序中引用
1 using  Microsoft.Practices.EnterpriseLibrary.Logging;
9 .添加日志:
在这之前,为程序的规范性和严谨,我们先定义两个枚举:
 1 /// <summary>
 2        /// 定义严重级别的枚举
 3        /// </summary>

 4          public   struct  Priority
 5          {
 6            public const int Lowest  = 0;
 7            public const int Low     = 1;
 8            public const int Normal  = 2;
 9            public const int High    = 3;
10            public const int Highest = 4;
11        }

12         
13          /// <summary>
14        /// 定义类别的枚举
15        /// </summary>

16          public   struct  Category
17          {
18            public const string General = "General";
19            public const string Trace   = "Trace";
20        }
添加日志,添加日志的工作全部都由Write方法来完成。
1 ///创建一个日志项
2             LogEntry log  =   new  LogEntry();
3             
4             log.Message  =   this .txt_LogMessage.Text;
5             log.Category  =  Category.General;
6             log.Priority  =  Priority.Normal;
7             
8              ///写入日志
9             Logger.Write(log);
10 .打开事件查看器,我们可以看到,在里面写入了一条日志信息:

11
.双击日志信息,可以查看详细的内容:
 
至此,一个完整的日志记录我们就做完了。入门篇就到这里,另外,大家可以看一下:
[url]http://terrylee.cnblogs.com/archive/2005/11/02/267063.html[/url]
在进阶篇里我会讲创建包含名-值对的字典,过滤事件,定制日志消息的格式,配置同步和异步等内容。











本文转自lihuijun51CTO博客,原文链接: http://blog.51cto.com/terrylee/67607  ,如需转载请自行联系原作者


相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
2月前
|
SQL 人工智能 监控
SLS Copilot 实践:基于 SLS 灵活构建 LLM 应用的数据基础设施
本文将分享我们在构建 SLS SQL Copilot 过程中的工程实践,展示如何基于阿里云 SLS 打造一套完整的 LLM 应用数据基础设施。
659 55
|
5月前
|
监控 安全 Linux
AWK在网络安全中的高效应用:从日志分析到威胁狩猎
本文深入探讨AWK在网络安全中的高效应用,涵盖日志分析、威胁狩猎及应急响应等场景。通过实战技巧,助力安全工程师将日志分析效率提升3倍以上,构建轻量级监控方案。文章详解AWK核心语法与网络安全专用技巧,如时间范围分析、多条件过滤和数据脱敏,并提供性能优化与工具集成方案。掌握AWK,让安全工作事半功倍!
187 0
|
8月前
|
存储 监控 算法
基于 PHP 语言的滑动窗口频率统计算法在公司局域网监控电脑日志分析中的应用研究
在当代企业网络架构中,公司局域网监控电脑系统需实时处理海量终端设备产生的连接日志。每台设备平均每分钟生成 3 至 5 条网络请求记录,这对监控系统的数据处理能力提出了极高要求。传统关系型数据库在应对这种高频写入场景时,性能往往难以令人满意。故而,引入特定的内存数据结构与优化算法成为必然选择。
226 3
|
9月前
|
运维 应用服务中间件 nginx
docker运维查看指定应用log文件位置和名称
通过本文的方法,您可以更高效地管理和查看Docker容器中的日志文件,确保应用运行状态可控和可监测。
1206 28
|
8月前
|
SQL 数据库
【YashanDB知识库】应用绑定参数的慢查询,慢日志抓取不到
【YashanDB知识库】应用绑定参数的慢查询,慢日志抓取不到
|
9月前
|
SQL 分布式计算 Serverless
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
基于阿里云 EMR Serverless Spark 版快速搭建OSS日志分析应用
240 0
|
9月前
|
存储 弹性计算 运维
海量日志接入 Elasticsearch Serverless 应用降本70%以上
本文将探讨在日志场景下,使用阿里云Elasticsearch Serverless相较于基于ECS自建Elasticsearch集群的成本与性能优势,展示如何通过Serverless架构实现高达 70%以上的成本节约。
512 0
|
6月前
|
监控 容灾 算法
阿里云 SLS 多云日志接入最佳实践:链路、成本与高可用性优化
本文探讨了如何高效、经济且可靠地将海外应用与基础设施日志统一采集至阿里云日志服务(SLS),解决全球化业务扩展中的关键挑战。重点介绍了高性能日志采集Agent(iLogtail/LoongCollector)在海外场景的应用,推荐使用LoongCollector以获得更优的稳定性和网络容错能力。同时分析了多种网络接入方案,包括公网直连、全球加速优化、阿里云内网及专线/CEN/VPN接入等,并提供了成本优化策略和多目标发送配置指导,帮助企业构建稳定、低成本、高可用的全球日志系统。
798 54
|
11月前
|
监控 安全 Apache
什么是Apache日志?为什么Apache日志分析很重要?
Apache是全球广泛使用的Web服务器软件,支持超过30%的活跃网站。它通过接收和处理HTTP请求,与后端服务器通信,返回响应并记录日志,确保网页请求的快速准确处理。Apache日志分为访问日志和错误日志,对提升用户体验、保障安全及优化性能至关重要。EventLog Analyzer等工具可有效管理和分析这些日志,增强Web服务的安全性和可靠性。
336 9

热门文章

最新文章