似乎没有,我们计划在未来的项目中使用它(Logging,Exception等)。它仍然受支持吗?我没有像过去那样看到这个工具有很多活动。
我们已经拥有NewRelic,因此也有助于了解NewRelic是否可以进行日志记录/异常处理。例如,我可以创建自定义日志或例外,并在新的遗留仪表板中查看它们吗?
答案 0 :(得分:32)
确实如此。您可以通过Nuget将 Enterprise Library 6 添加到项目中。以下是示例应用程序。
using System;
using System.Diagnostics;
using Microsoft.Practices.EnterpriseLibrary.Logging;
using Microsoft.Practices.EnterpriseLibrary.Logging.Formatters;
using Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners;
namespace Practice.Logging
{
internal class Program
{
public static void Main(string[] args)
{
LoggingConfiguration loggingConfiguration = BuildProgrammaticConfig();
var defaultWriter = new LogWriter(loggingConfiguration);
// Check if logging is enabled before creating log entries.
if (defaultWriter.IsLoggingEnabled())
{
defaultWriter.Write("Log entry created using the simplest overload.");
defaultWriter.Write("Log entry with a single category.", "General");
defaultWriter.Write("Log entry with a category, priority, and event ID.", "General", 6, 9001);
defaultWriter.Write("Log entry with a category, priority, event ID, " + "and severity.", "General", 5, 9002, TraceEventType.Warning);
defaultWriter.Write("Log entry with a category, priority, event ID, " + "severity, and title.", "General", 8, 9003, TraceEventType.Warning, "Logging Block Examples");
}
else
{
Console.WriteLine("Logging is disabled in the configuration.");
}
}
private static LoggingConfiguration BuildProgrammaticConfig()
{
// Formatter
var formatter = new TextFormatter();
// Trace Listeners
var eventLog = new EventLog("Application", ".", "StackOverflow #24309323");
var eventLogTraceListener = new FormattedEventLogTraceListener(eventLog, formatter);
// Build Configuration
var config = new LoggingConfiguration();
config.AddLogSource("General", SourceLevels.All, true)
.AddTraceListener(eventLogTraceListener);
config.IsTracingEnabled = true;
return config;
}
}
}
中找到更多详情
要将扩展安装到Visual Studio 2013中,您可以按照下面的解决方法步骤进行操作。
VSIX文件是使用Open Packaging Convention的zip文件。 您可以将.VSIX扩展名重命名为.ZIP并使用任何zip浏览器 (包括Windows文件资源管理器)浏览其内容。
<SupportedProducts>
<VisualStudio Version="11.0">
<Edition>Ultimate</Edition>
<Edition>Premium</Edition>
<Edition>Pro</Edition>
</VisualStudio>
</SupportedProducts>
<SupportedProducts>
<VisualStudio Version="11.0">
<Edition>Ultimate</Edition>
<Edition>Premium</Edition>
<Edition>Pro</Edition>
</VisualStudio>
<VisualStudio Version="12.0"> <!-- VS2013 -->
<Edition>Ultimate</Edition>
<Edition>Premium</Edition>
<Edition>Pro</Edition>
</VisualStudio>
<VisualStudio Version="14.0"> <!-- VS2015 -->
<Edition>Ultimate</Edition>
<Edition>Premium</Edition>
<Edition>Pro</Edition>
</VisualStudio>
</SupportedProducts>
ZIP
文件VSIX
答案 1 :(得分:19)
技术上与@cilerler建议相同,但可随时下载并使用解决方案。
Visual Studio 2013: Microsoft.Practices.EnterpriseLibrary.ConfigConsole.V6.VS2013.vsix(Source) Visual Studio 2015: Microsoft.Practices.EnterpriseLibrary.ConfigConsole.V6.VS2015.vsix(Source)
答案 2 :(得分:0)
我们需要在asp.net或控制台或Windows应用程序的bin文件夹中使用以下dll
•Microsoft.Practices.EnterpriseLibrary.Common.dll
•Microsoft.Practices.EnterpriseLibrary.Configuration.DesignTime.dll
•Microsoft.Practices.EnterpriseLibrary.Configuration.Design.HostAdapterV5.dll
•Microsoft.Practices.EnterpriseLibrary.Configuration.EnvironmentalOverrides.dll
实际上,我在entlib 6中看到的Microsoft.Practices.Unity.dll是可选的
答案 3 :(得分:0)
是的。此链接将提供所有必要的详细信息https://msdn.microsoft.com/en-us/library/dn169621.aspx
您也可以参考以下网站获取详细的实施方案。您可以安装vsix版本或二进制文件(http://www.microsoft.com/en-us/download/details.aspx?id=38789)来创建配置。 vsix有时不起作用,所以你可以修改extension.vsixmanifest,如下面的帖子所述。
http://www.gonetdotnet.info/posts/configure-and-use-enterprise-library-5-logging http://www.gonetdotnet.info/posts/how-to-configure-and-use-enterprise-library-5-0-application-blocks-using-nuget-package-manager
答案 4 :(得分:0)
我的项目是使用Enterprise Library 6.0,而VSIX似乎是针对EL 5.虽然我无法让VSIX在Visual Studio 2013和2015中正常工作,但我能够获得企业库6 Microsoft提供的二进制文件中的配置工具。这是下载的link。
选择EnterpriseLibrary6-binaries.exe。 通过将文件解压缩到文件夹来安装它。 64位企业库配置工具,名为EntLibConfig.exe。还有一个名为EntLibConfig-32.exe的32位版本。
答案 5 :(得分:0)
对于Visual Studio 2017。
IDisposable subscription =
(
from fn in fileNames.ToObservable()
from extension in fn.ToObservable().TakeLast(4).ToArray()
select new string(extension)
)
.ToArray()
.Subscribe(extensions =>
{
/* Do something with the `extensions` */
});