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  ,如需转载请自行联系原作者


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
1月前
|
Java 中间件
SpringBoot入门(6)- 添加Logback日志
SpringBoot入门(6)- 添加Logback日志
86 5
|
3月前
|
机器学习/深度学习 存储 监控
Elasticsearch 在日志分析中的应用
【9月更文第2天】随着数字化转型的推进,日志数据的重要性日益凸显。日志不仅记录了系统的运行状态,还提供了宝贵的洞察,帮助企业改进产品质量、优化用户体验以及加强安全防护。Elasticsearch 作为一个分布式搜索和分析引擎,因其出色的性能和灵活性,成为了日志分析领域的首选工具之一。本文将探讨如何使用 Elasticsearch 作为日志分析平台的核心组件,并详细介绍 ELK(Elasticsearch, Logstash, Kibana)栈的搭建和配置流程。
374 4
|
25天前
|
运维 监控 Cloud Native
一行代码都不改,Golang 应用链路指标日志全知道
本文将通过阿里云开源的 Golang Agent,帮助用户实现“一行代码都不改”就能获取到应用产生的各种观测数据,同时提升运维团队和研发团队的幸福感。
|
26天前
|
存储 Prometheus 监控
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
32 5
|
1月前
|
Java 中间件
SpringBoot入门(6)- 添加Logback日志
SpringBoot入门(6)- 添加Logback日志
46 1
|
1月前
|
监控 安全 网络安全
使用EventLog Analyzer日志分析工具监测 Windows Server 安全威胁
Windows服务器面临多重威胁,包括勒索软件、DoS攻击、内部威胁、恶意软件感染、网络钓鱼、暴力破解、漏洞利用、Web应用攻击及配置错误等。这些威胁严重威胁服务器安全与业务连续性。EventLog Analyzer通过日志管理和威胁分析,有效检测并应对上述威胁,提升服务器安全性,确保服务稳定运行。
|
1月前
|
存储 SQL 监控
|
1月前
|
自然语言处理 监控 数据可视化
|
3月前
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP的编程实践中,设计模式是解决常见软件设计问题的最佳实践。单例模式作为设计模式中的一种,确保一个类只有一个实例,并提供全局访问点,广泛应用于配置管理、日志记录和测试框架等场景。本文将深入探讨单例模式的原理、实现方式及其在PHP中的应用,帮助开发者更好地理解和运用这一设计模式。
在PHP开发中,单例模式通过确保类仅有一个实例并提供一个全局访问点,有效管理和访问共享资源。本文详细介绍了单例模式的概念、PHP实现方式及应用场景,并通过具体代码示例展示如何在PHP中实现单例模式以及如何在实际项目中正确使用它来优化代码结构和性能。
57 2
|
1月前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
359 30
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板