我希望我的日志文件看起来像这样:2009-02-13.log
但问题是我似乎无法找到任何方法来添加.log扩展名.
我尝试了很多东西,但没有任何帮助.这是我迄今为止所拥有的:
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="Logs/Log4Net/.log"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="yyyy-MM-dd" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
</layout>
</appender>
Run Code Online (Sandbox Code Playgroud) 目前我的应用程序使用log4net来记录错误,web.config为此如下:
<log4net>
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file value="c:/paypal/logs/gateway.log" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] – %message%newline" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="FileAppender" />
</root>
</log4net>
Run Code Online (Sandbox Code Playgroud)
但是,问题在于每天都会记录日志 gateway.log
有没有人知道使用log4net每天拥有不同日志文件的方法?
理想情况下,我不希望web.config每天使用计划任务手动编辑.
标题暗示如何在C#中每天创建一个新的日志文件?现在,该程序可能不一定全天候运行,但只能在工作时间调用.所以我需要做两件事.
我有这样的appender设置
<appender name="Scheduler_Appender" type="log4net.Appender.RollingFileAppender">
<file value="c:\temp\ApplicationLog.txt"/>
<rollingStyle value="Date"/>
<datePattern value="yyyyMMdd"/>
<appendToFile value="true"/>
<staticLogFileName value="true"/>
<layout type="MinLayout">
<locationInfo value="true"/>
</layout>
</appender>
Run Code Online (Sandbox Code Playgroud)
首次创建日志文件时,文件名只是ApplicationLog.txt,这是正确的.
但是当记录滚动时 - 生成的文件名是ApplicationLog.txt20100323(例如),而不是ApplicationLog20100323.txt
如何更改配置,以便将文件滚动到[FileName] [Date].[ext]而不是[FileName].[ext] [Date]
谢谢
更新
我尝试了这个,只是一些实验,但现在由于某种原因它生成带有.pxp扩展名的文件......
<appender name="Scheduler_Appender" type="log4net.Appender.RollingFileAppender">
<file value="c:\temp\Scheduler"/>
<rollingStyle value="Date"/>
<datePattern value="yyyyMMdd.txt"/>
<appendToFile value="true"/>
<staticLogFileName value="false"/>
<layout type="MinLayout">
</layout>
</appender>
Run Code Online (Sandbox Code Playgroud) this is my log4net configuration, the rollover log file is created wrong extension. The first file created with name of log_debug.txt and the rollover file created with log_debug.txt.1. but ideally it should be log_debug.1.txt.
I used preserveLogFileNameExtension value to be true, but it seems not working. Can you please check and let me know if anything wrong?
<appender name="DebugRollingFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="DEBUG" />
<levelMax value="DEBUG" />
</filter>
<file value=".\logs\log_debug.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="20" …Run Code Online (Sandbox Code Playgroud)下面是我的记录器配置文件的代码。在LogFolder中创建新的txt文件时,我的目标是在文件名后附加当前时间戳。例如,在2015年7月20日上午10:27:19,文件名应命名为“ logger_2015-07-20_10-27-19.txt”
使用我提供的代码,确实创建了一个记录器文件,但其名称为“ logger-.txt”。时间戳无法显示。
我是否需要提供“ $ {byTimeStamp(local)}”的引用?如果是,我将如何做到这一点?
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net>
<timestamp key="byTimeStamp" datePattern="yyyy-MM-dd_HH-mm-ss" timeReference="contextBirth"/>
//Here is where I set the name of the logger txt.
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="C:\LogFolder\logger_${byTimeStamp(local)}.txt" />
<param name="AppendToFile" value="true"/>
<param name="RollingStyle" value="Once"/>
<param name="DatePattern" value="yyyy-MM-dd'.txt'" />
<preserveLogFileNameExtension value="true"/>
<maxSizeRollBackups value="20" />
<staticLogFileName value="false" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%date [%thread] %-5level %logger - %message%newline" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="LogFileAppender" />
</root>
</log4net> …Run Code Online (Sandbox Code Playgroud) 有人可以提供一个示例,说明如何设置和登录YYYYMMDD格式的日常日志文件,用于c#中使用的log4net.日志文件应为Data_20110407.txt,Data_20110408.txt,依此类推.
<appender name="ErrorLogFileAppender" type="log4net.Appender.RollingFileAppender">
bla bla...?
And in c# how should i call to log into this specific log? Log4Net.Error() or something?
Run Code Online (Sandbox Code Playgroud)
感谢帮助!