我正在使用web中的配置设置upp Log4Net。配置并希望基于数据中的属性并结合今天的日期创建文本日志<code>(RollingLogFileAppender)。(这在早期的代码中是可以实现的,但有点难看,所以将所有内容都移动到web.config):
类似这样的BOOKINGS_20160405.txt
。
因此,如果我想要记录的数据(一个带有键/值的字典)有一个名为Source: BOOKING
的键,我想要上面的结果。这个源可以包含几个其他类别,并且应该保存到那些日志文件中。
我用datePattern
尝试了几种方法,但找不到任何解决方案。
这甚至可以在不为其编写一些代码的情况下实现吗?也许我根本不应该为此使用RollingLogFileAppender?
也许我可以创建一个自定义追加制作我想要的?
所以我无法通过纯来解决它
但是,无论如何,我都使用了代码来使其正常工作。也许它可以帮助别人。看起来像这样:
public class FileAppender : IAppender
{
public void RegisterLogger(ILoggerRepository repository, IConfig config)
{
if (!config.isActive) return;
if (repository.GetAppenders().Any(x => x.Name.Equals(config.logName, StringComparison.InvariantCultureIgnoreCase))) return;
if (config.path.EndsWith(@"\") == false)
path += @"\";
var rollingFileAppender = new RollingFileAppender
{
Name = config.logName,
AppendToFile = true,
File = config.path,
RollingStyle = RollingFileAppender.RollingMode.Date,
StaticLogFileName = false,
DatePattern = $"'{config.logName}_'yyyyMMdd'.log'",
LockingModel = new log4net.Appender.FileAppender.MinimalLock(),
Layout = new log4net.Layout.PatternLayout("%date %-5[%level] - %message%newline"),
};
var filters = new List<log4net.Filter.IFilter>() {
new log4net.Filter.LoggerMatchFilter() { LoggerToMatch = config.logName, AcceptOnMatch = true },
new log4net.Filter.DenyAllFilter(),
};
foreach (var filter in filters)
{
filter.ActivateOptions();
rollingFileAppender.AddFilter(filter);
}
rollingFileAppender.ActivateOptions();
log4net.Config.BasicConfigurator.Configure(rollingFileAppender);
}
public void Write(IConfig config, LogData data)
{
if (!config.isActive) return;
var textLogger = LogManager.GetLogger(config.logName);
var text = $"{data.Sender} - {data.Ip} - {data.Locator} - {data.Text} - {data.Args}";
textLogger.Info(text);
}
}
问题内容: 我已经编写了一些代码来检查两个日期,即开始日期和结束日期。如果结束日期早于开始日期,则会提示您结束日期早于开始日期。 我还想添加检查开始日期是否在今天之前(今天和用户使用该应用程序的那天一样)。(下面的日期检查器代码,如果有任何影响,那么所有这些都为Android编写) 问题答案: 这有帮助吗?
获取今天的日期(年、月、日) 用法 Your browser does not support the video tag. 案例:小闹钟 功能:2019年12月25日,播放圣诞快乐歌
问题内容: 我有此查询以获取月结果。但是我想得到今天的结果。 做这个的最好方式是什么? 问题答案: 您的开始日期对象应将当前日期时间设置为(毫秒精度),并将今天的时间设置为: 然后像往常一样在您的MongoDB查询运算符中传递修改后的日期对象: 如果您正在使用 momentjs 库,则可以通过在当前当前日期对象上使用 and 方法,并将字符串作为参数传递来实现:
我不确定这是否可能? 我得拿到密码才能读 今天的月份即2月今天的日期即17月底的日期即31日,然后是一年中的其他11个月,在一行中按顺序排列 8月1日-31日|9月|10月|11月|12月|1月|2月|3月|4月|5月|6月|7月 请以最佳方式提供任何建议? 多谢 定时(timing的缩写)
问题内容: 换句话说,我想要提供Joda-Time的功能: 但没有Joda-Time,只有java.util.Date。 不推荐使用.setHours()等方法。有没有更正确的方法? 问题答案: 由于不推荐使用这些方法,因此您可以使用: 如果最终需要一个对象,只需调用