草庐IT

log-sum-exp

全部标签

c# - 如何使用 log4net 使用 Threadpool 线程记录正确的上下文?

我试图找到一种方法来从一堆线程中记录有用的上下文。问题是很多代码是在通过线程池线程到达的事件上处理的(据我所知),因此它们的名称与任何上下文无关。这个问题可以用下面的代码来演示:classProgram{privatestaticreadonlylog4net.ILoglog=log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);staticvoidMain(string[]args){newThread(TestThis).Start("ThreadA")

C# WiX CustomAction session .Log。我在哪里可以找到日志?

我是WiX安装程序的新手。我正在使用Session.Log为进程记录一些有用的数据。session.Log("BeginregistertheVddsinterface.");但我不确定在哪里可以找到日志。是否有记录的默认路径?或者我是否需要指定我需要在安装程序.wxs文件中提供的路径? 最佳答案 您需要使用msiexec.exe从命令行运行安装程序,然后包含L命令行选项以指定要保存日志的位置。例如:msiexec/iapp.msi/l*vthelog.txt有关msiexec参数的更多信息,请参阅Command-LineOptio

c# - LINQ .SUM() 和可为空的数据库值

我知道为什么会这样,但有人能指出正确的语法方向吗?目前我有:varexpense=fromeindb.I_ITEMwheree.ExpenseId==expenseIdselecte;returnexpense.Sum(x=>x.Mileage??0);我的问题是x.Mileage的类型是“double?”并且在数据库中有空值。我得到的错误是:ExceptionDetails:System.InvalidOperationException:Thecasttovaluetype'Double'failedbecausethematerializedvalueisnull.Eithert

c# - C#计算大文件的MD5SUM

我正在使用以下代码来计算文件的MD5SUM-byte[]b=System.IO.File.ReadAllBytes(file);stringsum=BitConverter.ToString(newMD5CryptoServiceProvider().ComputeHash(b));这通常工作正常,但如果我遇到大文件(~1GB)-例如iso镜像或DVDVOB文件-我遇到内存不足异常。不过,我能够在大约10秒内在cygwin中计算同一个文件的MD5SUM。请建议我如何才能让它适用于我程序中的大文件。谢谢 最佳答案 我建议使用替代方法:

c# - 您可以重载 Sum 以添加自定义类型吗

我有一个包含货币和金额的Money结构。我希望能够使用linq对列表求和。publicstructMoney{publicstringCurrency{get;set;}publicdecimalAmount{get;set;}publicstaticMoneyoperator+(Moneym1,Moneym2){if(m1.Currency!=m2.Currency)thrownewInvalidOperationException();returnnewMoney(){Amount=m1.Amount+m2.Amount,Currency=m1.Currency};}}鉴于上面的代

c# - log4Net XmlHierarchyConfigurator

我在我的代码中使用Log4Net,当我的进程运行时它开始抛出这个奇怪的异常。这是我的Log4NetAppconfig,我仍然不确定这里缺少什么它像这样抛出log4net:ErrorXmlHierarchyConfigurator:cannotfindproperty[maxSizeRollBackups]tosetobjecton[log4net.Appender.FileAppender].配置: 最佳答案 将log4net.Appender.FileAppender更改为log4net.Appender.RollingFileA

c# - 无法加载文件或程序集 'log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=1b44e1d426115821' 或其依赖项之一

我发现了几个与此问题相关的线程,但没有一个解决了我的问题。我之前一直在我的ASP.NET服务中使用log4netversion1.2.10.0。我已经将它更新到当前版本log4netv2.0.8.0,由于一些第三方库,我还在我的web.config中添加了以下行以支持/重定向旧版本。我也对这些Messages一头雾水内部异常:((System.IO.FileLoadException)ex.InnerException.InnerException).MessageCouldnotloadfileorassembly'log4net,Version=1.2.10.0,Culture=n

c#授予Windows用户 "Log On As Service"权限

如何授予用户对服务的LogOnAsService权限?我需要手动执行此操作,在services.msc应用程序中,我可以转到该服务,更改密码(设置与之前相同的密码),单击应用,我会收到一条消息:Theaccount.\postgreshasbeengrantedtheLogOnAsServiceright.我如何从代码中执行此操作,否则我每次运行应用程序时都必须手动授予此权限,这是不可能的@史蒂夫staticvoidMain(){//irrelevantstuffGrantLogonAsServiceRight("postgres");//irrelevantstuff}private

c# - 从 C++ 使用 Debug.Log

在Unity中制作C++插件时,使用起来更容易Debug.Log快速查看变量值,但此功能只能从C#端使用。这使得调试C++插件变得非常困难,因为Unity的调试器不支持它。std::cout不是一个选项,因为它没有显示在编辑器中。我查看了位于\Editor\Data\PluginAPI的UnityC++API但没有找到任何关于登录API的信息。关于如何在C++的编辑器日志中显示有什么建议吗? 最佳答案 这可以通过回调函数来完成。将指向函数的指针从C#发送到C++,将其存储在临时变量中。将Debug.Log放入该回调函数中,并允许它接

c# - 如何使用 Log4Net 在日志文件中获取当前用户名而不是 AppPool 标识

我们在ASP.NETMVC3应用程序中使用Log4Net,一切正常,但我们希望在日志文件中看到当前用户名而不是应用程序池的标识,这是我们正在使用的附加程序配置:true所以看起来属性:%username正在检索值:WindowsIdentity.GetCurrent().Name而不是我们需要的:HttpContext.Current.User关于我们如何在不创建自定义属性或额外的log4net派生类的情况下在web.config中轻松解决此问题的任何想法?如果可能的话,否则如果自定义属性是我们可以忍受的唯一方式,我想:)谢谢! 最佳答案