我正在尝试使用Topshelf和Serilog(分别是Serilog.Extras.Topshelf包)为我的Windows服务设置一个简单的日志记录配置。HostLogger.UseLogger(newSerilogHostLoggerConfigurator(newLoggerConfiguration().WriteTo.RollingFile(AppDomain.CurrentDomain.BaseDirectory+"\\logs\\app-{Date}.log").WriteTo.ColoredConsole().MinimumLevel.Debug().CreateLog
我在网上搜索了一个非常简单的问题。我的解决方案是一个exe(WPF)项目和四个类库。我需要一个日志记录,我喜欢NLog。如何在一个解决方案中的所有5个项目中使用它?我不知道,我是否需要创建(或获取某个地方)从所有项目引用的包装类项目并从那里使用Nlog?我看到为log4Net写的类似这样的东西。或者对于这种情况是否有一些模式或最佳实践? 最佳答案 只需在每个项目中直接引用NLOG并使用它。但是你只需要在你的主应用程序中配置它。然后将自动共享配置。 关于c#-如何在同一解决方案中使用来自多
给定以下示例类:publicclassMyClass{publicstringS{get;set;}publicintI{get;set;}publicDateTimeD{get;set;}privatefloatF{get;set;}privatelongl;publicMyClass(){S="foo";I=42;D=newDateTime(2011,11,11);F=3.14f;l=12435;}}如果我在我的应用程序中有一个此类的实例myClass,请在Debug模式(VisualStudio2010)中单步执行代码,并在某些时候将myClass键入立即窗口,显示以下内容:{M
这是我的web.config信息:...这是初始化记录器的代码:protectedvoidSendMessage(){log4net.Config.XmlConfigurator.Configure();ILoglog=LogManager.GetLogger(typeof(Contact));...log.Info("herewego!");log.Debug("debugafasf");...}无论我做什么,它都不起作用。我正确引用了“log4net.dll”,通过调试应用程序我可以看到日志对象正在正确启动。这是一个asp.net3.5框架的web项目。有什么想法/建议吗?我原以为
我想像这样在我的MVCController抽象基类中构建我的log4net记录器:protectedstaticreadonlyILogLog=LogManager.GetLogger(typeof(AuthorizedController));以这种方式,我可以一次定义记录器并完成它。唯一的问题是日志输出中的记录器属性将始终是AuthorizedController,如果我有FooController继承自AuthorizedController我想日志输出以反射(reflect)这一点。执行此操作的KISS、DRY和有效方法是什么? 最佳答案
我希望能够在每个catchblock中进行日志记录。像这样。catch(Exceptionexception){Logger.Write(exception);}然后配置中的设置将使用客户监听器获取Message和StackTrace属性等。我想使用EnterpriseLibraryLoggingApplicationBlock。我敢肯定有人已经这样做了。 最佳答案 其他人已经发布了一些关于让日志应用程序block(LAB)工作的很好的链接,所以我不会在这里重复。在格式化您的异常方面,您有3个我能想到的选择:使用默认值Excepti
最开始遇到这个错误,百度,网上一堆的清一色解决方案,缺少log4j,引入log4j相关依赖,或者引入slf4j-over-log4j的依赖,但是好像都不行,最后还是谷歌靠谱,直接检索出github上的解决方案,这才解决了问题。查看github的解决方案:https://github.com/alibaba/druid/issues/2942如果网络比较慢,访问不了github也没有关系,看下面就好。你安装的应该是低版本的druid没有这个类,升级到新版;指定druid-spring-boot-starter但没指定druid也可能出现这个错误com.alibabadruid1.1.10com.
正如标题所暗示的那样,我如何在C#中每天创建一个新的日志文件?现在该程序可能不一定会全天候运行,而只会在工作时间被调用。所以我需要做两件事。如何每天创建一个新的日志文件?日志文件的名称格式类似于MMDDYYYY.txt我怎样才能在午夜之后创建它以防它运行到晚上的所有时间? 最佳答案 2018年更新:我现在更喜欢使用NLog以前关于log4net的回答:Thisexample显示如何配置RollingFileAppender以在日期期间滚动日志文件。此示例将每分钟滚动一次日志文件!要更改滚动周期,请调整DatePattern值。例如,
在普通/同步/单线程控制台应用程序中,NDC.Push可以很好地管理“当前项目”(可能在多个嵌套级别,但对于本示例只有1个级别)。例如:privatestaticILogs_logger=LogManager.GetLogger("Program");staticvoidMain(string[]args){BasicConfigurator.Configure();DoSomeWork("chunk1");DoSomeWork("chunk2");DoSomeWork("chunk3");}staticvoidDoSomeWork(stringchunkName){using(NDC
我正在使用NLog进行日志记录,我使用包装器来调用日志方法,我的问题是:如果我尝试打印有关调用站点(${callsite})的信息,它会打印包装器方法,而不是导致记录器记录的原始方法。有什么方法可以获取调用包装器方法的原始方法吗? 最佳答案 看我对这个问题的回答:ProblemmatchingspecificNLogloggername我已经从这里的答案中复制了示例代码(用于缩写的NLog包装器)以省去一些麻烦:classNLogLogger:ILogger{privateNLog.Loggerlogger;//TheTypetha