当将日志保存到Azure Blob存储中时,是否有方法每天创建不同的文件夹?现在我正在使用这个配置,它运行得很好
<appender name="AzureAppender2" type="log4net.Appender.AzureBlobAppender, log4net.Appender.Azure">
<param name="ContainerName" value="testcon" />
<param name="DirectoryName" value="myfolder/logs.txt" />
<param name="ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=testcon;AccountKey="rftgdfgdfgfdg78=="/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>我已经试过了
<param name="DirectoryName" value=%date/" />但这不管用
我想要的是每天能够动态地使用不同的文件夹:比如
DirectoryName = 2016-05-13
DirectoryName = 2016-05-12
DirectoryName = 2016-05-11
这能实现吗?
谢谢
发布于 2016-05-13 04:18:34
这是密码表示GitHub上的附录。
下面是从配置值映射的DirectoryName类属性:
private string _directoryName;
public string DirectoryName
{
get
{
if (String.IsNullOrEmpty(_directoryName))
throw new ApplicationException(Resources.DirectoryNameNotSpecified);
return _directoryName;
}
set
{
_directoryName = value;
}
}以及实际为blob创建文件名的相关Filename方法:
private static string Filename(LoggingEvent loggingEvent, string directoryName)
{
return string.Format("{0}/{1}.{2}.entry.log.xml",
directoryName,
loggingEvent.TimeStamp.ToString("yyyy_MM_dd_HH_mm_ss_fffffff",
DateTimeFormatInfo.InvariantInfo),
Guid.NewGuid().ToString().ToLower());
}因此,看起来directoryName只接受静态值。幸好它是开源的..。
https://stackoverflow.com/questions/37200806
复制相似问题