Yoa*_*oav 15 .net log4net log4net-configuration
我刚开始使用Log4Net库并且在配置时遇到问题.我不需要任何特别的东西.我将它用于Winforms应用程序,需要基本文件和控制台日志记录.为了保持尽可能简单,我使用App.config进行配置并使用从Log4Net项目网站获取的默认值:App.config:
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="ProjectFolder" value="D:\Documents\my documents\Themis\Projects"/>
</appSettings>
<configSections>
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<param name="File" value="ThemisLog.txt" />
<param name="AppendToFile" value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="Header" value="[Header]\r\n" />
<param name="Footer" value="[Footer]\r\n" />
<param name="ConversionPattern" value="%d [%t] %-5p %c %m%n" />
</layout>
</appender>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
<layout type="log4net.Layout.PatternLayout">
<param name="Header" value="[Header]\r\n" />
<param name="Footer" value="[Footer]\r\n" />
<param name="ConversionPattern" value="%d [%t] %-5p %c %m%n" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="LogFileAppender" />
<appender-ref ref="ConsoleAppender" />
</root>
</log4net>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
Run Code Online (Sandbox Code Playgroud)
课程类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using log4net;
using log4net.Config;
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
namespace Themis
{
static class Program
{
private static readonly ILog log = LogManager.GetLogger(typeof(Program));
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
log4net.Config.XmlConfigurator.Configure();
log.Debug("Enter application");
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new OldFrmMain());
log.Debug("Exit application");
}
}
}
Run Code Online (Sandbox Code Playgroud)
将创建日志文件并在其中创建日志,但不会发生控制台日志记录.
Nic*_*oul 38
你想要的是不是ConsoleAppender,但TraceAppender.
名称可能令人困惑,但TraceAppender在Visual Studio的"输出"窗口中写入.
样品:
<log4net>
<appender name="TraceAppender" type="log4net.Appender.TraceAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d [%t] %-5p %c %m%n"/>
</layout>
</appender>
<root>
<level value="ALL"/>
<appender-ref ref="TraceAppender"/>
</root>
</log4net>
Run Code Online (Sandbox Code Playgroud)
我猜 Log4net 使用传统的 Console.WriteLine(\xe2\x80\xa6) 方法将消息发送到控制台。它在 WinForms 应用程序中不起作用,因为 Console.WriteLine(\xe2\x80\xa6) 默认情况下在 WinForms 应用程序中不执行任何操作。
\n\n尝试在应用程序开始时调用 Win32 API 函数 AllocConsole。它应该为您的 WinForms 应用程序创建一个控制台并启用 Console.WriteLine(\xe2\x80\xa6) 函数。\n您可以在此处找到显示如何调用 AllocConsole 的代码示例。\n 如何在 Windows 中打开控制台窗口应用
\n| 归档时间: |
|
| 查看次数: |
16518 次 |
| 最近记录: |