草庐IT

c# - log4net的线程安全

log4net是否是线程安全的似乎有一些讨论,共识是框架是线程安全的,但appender不是,需要正确使用才能实现线程安全。有人可以对此有所了解,并可能举例说明以线程安全的方式使用RollingFileAppender吗?是否需要将其插入上下文?不知何故被锁定,还是什么? 最佳答案 根据这个link,RollingFileAppender是线程安全的(就日志而言)。这是来自log4net的开发人员之一。他特别指出,您的代码中不需要这样的锁定:lock(logger){logger.Info("Hello!");}

c# - log2(int) 和 log2(float) 的最快实现

问题是是否有其他(和/或更快)基本2log的实现?应用log2(int)和log2(float)操作在许多不同的上下文中非常有用。仅举几例:压缩算法、3d引擎和机器学习。在几乎所有这些上下文中,它们都用于调用数十亿次的低级代码......尤其是log2(int)操作非常有用。因为我发现自己一直在使用log2,所以我不想在这里给出我正在处理的特定应用程序。相同的是,这是一个真正的性能消耗者(如各种应用程序的性能测试所示)。对我来说,关键是尽快完成。测试所有实现的完整源代码添加在底部,因此您可以自己查看。当然……至少运行3次测试,并确保计数器足够大以达到几秒钟。此外,我执行“添加”操作以确

c# - log4net BufferingForwardingAppender 性能问题

编辑2:我已经解决了这个问题(见下面的答案)请注意,这个问题可能会影响所有装饰有BufferingForwardingAppender的附加程序以及所有继承自BufferingAppenderSkeleton的附加程序(分别为:AdoNetAppender、RemotingAppender、SmtpAppender和SmtpPickupDirAppender)*我正在做一些非常基本的log4net工作台,我尝试用BufferingForwardingAppender装饰RollingFileAppender。我在通过BufferingForwardingAppender而不是直接通过R

c# - Entity Framework 核心 : Log queries for a single db context instance

使用EFCore(或与此相关的任何ORM)我想跟踪ORM在我的软件中的某些操作期间对数据库进行的查询次数。我之前在Python下使用过SQLAlchemy,在那个堆栈上,这很容易设置。我通常有单元测试,这些单元测试针对内存中的SQLite数据库断言针对场景进行的查询数量。现在我想使用EFCore做同样的事情,并查看了Loggingdocumentation.在我的测试设置代码中,我按照文档所述进行操作:using(vardb=newBloggingContext()){varserviceProvider=db.GetInfrastructure();varloggerFactory=

c# - 是否可以在 log4net 配置中使用通配符记录器名称?

在我的应用程序中,我使用log4net,所有类型都根据它们的类型创建自己的记录器——例如:privatestaticreadonlyILogLog=LogManager.GetLogger(typeof(Program));在开发过程中,我将根记录器保留在DEBUG上,以便从我的代码中捕获所有日志输出。然而,第三方组件也使用相同的方法,但每秒生成数百条日志消息,我对其中任何一条都不感兴趣。是否可以在记录器配置中使用某种通配符,以强制所有记录器仅在WARN时记录,例如:[上面的确切示例,使用*不起作用] 最佳答案 您可以只指定命名空间

c# - 具有 Application Insights 的 Log4Net

我正在尝试配置我的azureasp.net网站以将log4net跟踪发送到AzureApplicationInsights。我可以在我的azure控制台页面View等中看到,因此我知道它工作正常。我还可以看到log4net跟踪,当配置文件处理程序时,但是当配置log4net以使用应用程序洞察处理程序时,我没有看到任何log4net条目出现在应用程序洞察仪表板中,在构建或运行时没有错误或警告-只是仪表板中没有结果。我查看了Fiddler中的网络流量,我可以看到页面浏览数据等被发送到应用程序洞察,但没有看到log4net跟踪流量,因此我怀疑这是一个配置问题。另外,我在我的主项目中尝试了Te

c# - Enterprise Logging Block vs NLog vs log4net

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭7年前。Improvethisquestion我需要在我的项目中使用一个日志库,并在EnterpriseLoggingBlock、NLog和log4net之间进行考虑。我在比较中找到了一些链接,但其中大部分都非常陈旧,并且提示诸如长时间没有新版本的log4net之类的事情。任何人都可以根据当前数据就易用性、易配置性、性能、可扩展性等方面提出建议。

c# - log4net 与 ASP.NET MVC : nothing happens

我正在尝试将log4net与ASP.NETMVC一起使用,但我无法用它发生任何事情。我在我的Web项目根目录中创建了一个配置:在我被问到之前:是的,应用程序有权写入目录。我已经对此进行了测试,应用程序有权访问该目录。这是我尝试使用log4net的地方:publicclassHomeController:Controller{readonlylog4net.ILoglog=log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);publicActionResul

c# - 我如何将当前网站的 connectionString 用于 log4Net 而不是配置

这个问题在这里已经有了答案:CanyoupulltheconnectionStringforalog4netAdoNetAppenderfromelsewhereinaweb.configfile?(5个答案)关闭5年前。我将log4Net用于我的系统日志。如果appender类型是Log4Net中的AdoNetAppender,则connectionString节点是必需的。但是,我在使用Log4Net的网站上已经有一个connectionString。如何将网站的connStr用于log4Net,而不是在log4net配置文件中再次配置相同的connstr?

c# - Log4net 转换模式列表

是否有可用于log4net的所有转换模式的完整列表?我什至无法在源代码中找到它们。我只找到了this;不应该有更多的模式吗?例如,我如何获取托管应用程序的名称?另外,如何添加自己的图案?这里的一个例子是可比列表,但对于nlog.编辑:我找到了应用程序名称的模式;它是[Application]。但我仍在寻找母亲的负担。有人至少可以指出我管理这些资源的类(class)吗?也许我可以从中找到列表。 最佳答案 ApacheLog4NetSDK文档中log4net.Layout.PatternLayout类的Remarks部分看起来有我们想要