我的目的是什么:日志文件输出将包含类,方法和日志写入的行的名称(在下面的示例中 - Program,Main,16)
问题:日志文件输出包含类的名称,方法和包装类的行,而不是" main"的详细信息。功能
我有2个项目
项目1" Log4netCommon" - 包括功能日志的log4net.dll和包装
项目2" NoDependenceLog4net" - 引用" Log4netCommon"并包含
的主要功能我的配置文件的一部分:
<appender name="File" type="log4net.Appender.FileAppender">
<file value="C:/Users/zxc/Desktop/MyFile.txt" />
<layout type="log4net.Layout.PatternLayout" >
<conversionPattern value="%date [%thread] %-5level %c - %m%n %logger [%-5method] %line - [%file] [%location]" />
</layout>
</appender>
项目2&#34; NoDependenceLog4net
namespace NoDependenceLog4net
{
public class Program
{
static void Main(string[] args)
{
var logManager = new Log4netCommon.LogManager();
var log = logManager.GetLogger(typeof(Program));
log.Info("we are logging without reference of log4net");
log.Warn("Warn");
log.Error("Error");
Console.ReadLine();
}
}
项目1&#34; Log4netCommon
namespace Log4netCommon
{
class LoggerAdapter : Log4netCommon.ILogger
{
private readonly ILog _log;
internal LoggerAdapter(ILog log)
{
_log = log;
}
public void Debug(object message)
{
_log.Debug(message);
}
public void Info(object message)
{
_log.Info(message);
}
namespace Log4netCommon
{
public class LogManager : ILogManager
{
static LogManager()
{
log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("C:\\Users\\zxc\\Documents\\Visual Studio 2013\\Projects\\Log4netCommon\\Log4netCommon\\AppPatternLayout.config"));
}
public ILogger GetLogger(Type type)
{
var logger = log4net.LogManager.GetLogger(type);
return new LoggerAdapter(logger);
}
}
}
命名空间Log4netCommon { 公共接口ILogManager { ILogger GetLogger(类型类型); } }
&#34;类似的&#34;我看过的问题
When using wrapper, how to preserve class and method name for Log4Net to log?