Bla*_*man 68 c# asp.net-mvc logging log4net
当我将文件值设置为logs\log-file.txt,它将在何处创建此文件夹?在/bin目录中?
我的web.config看起来像这样:
<log4net>
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file value="logs\log-file.txt" />
<appendToFile value="true" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
</log4net>
Run Code Online (Sandbox Code Playgroud)
这是正确的记录方式:
ILog logger = LogManager.GetLogger(typeof(CCController));
logger.Error("Some Page", ex); // where ex is the exception instance
Run Code Online (Sandbox Code Playgroud)
Avi*_*jee 63
如果您希望将日志文件放在指定位置(将在运行时决定)可能是您的项目输出目录,那么您可以.config通过这种方式配置文件条目
<file type="log4net.Util.PatternString" value="%property{LogFileName}.txt" />
Run Code Online (Sandbox Code Playgroud)
然后在调用之前的代码中log4net configure,设置如下所示的新路径
log4net.GlobalContext.Properties["LogFileName"] = @"E:\\file1"; //log file path
log4net.Config.XmlConfigurator.Configure();
Run Code Online (Sandbox Code Playgroud)
它有多简单?:)
Ola*_*emo 46
它将在项目/解决方案的根目录中创建该文件.
您可以在应用程序的web.config中指定所选位置,如下所示:
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="c:/ServiceLogs/Olympus.Core.log" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value=".yyyyMMdd.log" />
<maximumFileSize value="5MB" />
<staticLogFileName value="true" />
<lockingModel type="log4net.Appender.RollingFileAppender+MinimalLock" />
<maxSizeRollBackups value="-1" />
<countDirection value="1" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5level [%thread] %logger - %message%newline%exception" />
</layout>
</appender>
Run Code Online (Sandbox Code Playgroud)
文件标签指定位置.
Ben*_*ard 21
文件值可以是绝对路径,如"c:\ logs\log.txt",也可以是相对于bin目录的相对路径.
至于实现它,我通常将以下内容放在我计划登录的任何类的顶部:
private static readonly ILog Log = LogManager.GetLogger(
MethodBase.GetCurrentMethod().DeclaringType);
Run Code Online (Sandbox Code Playgroud)
最后,您可以像这样使用它:
Log.Debug("This is a DEBUG level message.");
Run Code Online (Sandbox Code Playgroud)
Alf*_*nti 10
Log4net正在保存到项目文件夹中.像:\SolutionFolder\ProjectFolder\bin\SolutionConfiguration\logs\log-file.txt.
哪里:
希望这可以帮助!
FileAppender appender = repository.GetAppenders().OfType<FileAppender>().FirstOrDefault();
if (appender != null)
logger.DebugFormat("log file located at : {0}", appender.File);
else
logger.Error("Could not locate fileAppender");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
125036 次 |
| 最近记录: |