Tag: 记录

尝试写入事件日志时出错 – 无法打开源“SourceName”的日志。 您可能没有写访问权限

我们目前正在尝试将现有的经典ASP页面集成到我们记录到事件日志的新方法中。 我们通过将.NET程序集公开为COM对象来实现此目的,该对象执行实际日志记录到事件日志。 这一切都正常,但是当我们尝试写入事件日志时,我们收到错误“无法打开源’SourceName’的日志。您可能没有写访问权限。” 从aspx页面调用时,日志代码本身也可以工作。 这显然是IUSR_machinename帐户的权限问题,但是,通过查看其他一些相关post,我们尝试了许多解决方案而没有任何成功。 编辑HKEY_LOCAL_MACHINE / SYSTEM / CurrentControlSet / Services / EventLog / Application / RestrictGuestAccess – 将其设置为0 将IUSR_machinename添加到本地管理员组并删除来宾组 编辑CustomSD并将(A ;; 0x0002 ;;; AU)附加到此处的值 我们唯一的成功是使用ASP.NET模拟在服务器上使用新创建的本地管理员帐户。 使用此用户可以使用,但这是一种解决方法,而不是解决初始权限问题。 还有什么我们可以尝试使用IUSR_machinename帐户获取权限吗?

Serilog的例外解构

Serilog有一种方便的方法来解析对象,如下例所示: logger.Debug(exception, “This is an {Exception} text”, exception); logger.Debug(exception, “This is an {@Exception} structure”, exception); 第一行导致记录器将exception记录为纯文本(通过调用ToString()),第二行使记录器将exception属性写为单独的字段。 但是这个重载呢: logger.Debug(exception, “This is an exception”, exception); 这个作为第一个参数使用exception,它总是写成一个字符串。 我想要做的是以结构化的方式启用日志记录exception。 是否可以配置Serilog来实现这一目标? UPDATE。 我想这个问题会导致记录exception的另一个方面:如何确保消息通过exception属性进行丰富(因此它们以结构化的方式记录到富散问件,如Elasticsearch),而无需将所有exception属性写入呈现的文本消息(所以纯文本记录器没有填满大量的exception细节)。

记录到内存然后写入文件

我想知道一些事情,我有这个循环运行了所有的日子(7次),然后在其中的另一个循环,运行文件中的所有记录。 (大约100000),所以总共约70万次,现在我想记录每个循环中的每个处理,并将其记录到文件中,假设我们第一次进入第一次循环,第一次进入第二次循环,我们每次记录,在文件中完成的操作。 但问题是,如果我每次都要记录,那么性能会受到极大的影响,因为有太多的IO操作,我在想的是有什么办法,我可以将每一步记录到内存中(内存流)或者任何东西)然后在外部循环结束时,将所有内存流数据记录到文件中? 如果我有话 for (int i=0; i<7; i++) { for (int j=0; j<RecordsCount; j++) { SomeOperation(); // I am logging to a file here right now } } 它严重损害了性能,如果删除日志文件,我可以提前完成它。 所以我认为首先登录到内存并将所有日志从内存写入文件会更好。 那么,有没有办法做到这一点? 如果有很多,最好的是什么? ps:这是一个记录器,我发现http://www.codeproject.com/Articles/23424/TracerX-Logger-and-Viewer-for-NET ,但我可以使用任何其他自定义记录器或其他任何需要的东西。 编辑:如果我使用内存流,然后将其全部写入文件,那么这会给我提供更好的性能,然后使用File.AppendAllLines如Yorye和zmbq的回答中所建议的那样,这是否会让我在Jeremy评论中获得任何性能提升?

用于ASP.NET应用程序的Singleton compact Logger

我编写了一个Singeton紧凑型记录器,它非常适合ASP.NET应用程序。 只需重新Logger.Log.Info(“Hello world!”);它然后Logger.Log.Info(“Hello world!”); 。 它还会自动记录未处理的exception。 有时我在尝试创建日志文件Stream遇到错误。 例外是: 该进程无法访问文件’C:\ inetpub \ wwwroot \ MyApp \ Logs \ 5-22-2011.log’,因为它正由另一个进程使用。 我检查了Process Explorer,只有w3wp.exe处理了日志文件。 似乎不同的线程出现了问题。 大概每24小时发生一次!

将日志文件保持在一定大小

我有一个应用程序在自助服务终端(C#/ WPF)中的独立面​​板PC上运行。 它对文本文件执行一些典型的日志记录操作。 PC具有一些有限的磁盘空间来存储这些日志。 我需要做的是能够指定允许日志文件的最大大小。 如果在尝试写入日志时超出最大大小,则会将新数据写入日志末尾,并从头开始清除最旧的数据。 获取文件大小没有问题,但有没有任何典型的文件操作技术来保持文件在一定的大小?

Log4Net没有写入数据库

我检查了连接字符串(我从服务器资源管理器中获取)。 我在log4net config中检查了commandText。 我已经检查了数据库权限(集成安全性很好,并且在log4net类之外工作)。 我已经检查了存储库的配置属性(它已配置,它找到配置文件正常)。 我还检查了配置文件中定义的字段是否与数据库中表的属性(字段大小等)匹配。 有任何想法吗? 当我正在调试它似乎在所有正确的时间点击所有正确的方法,没有例外提出。 <!—-> …more parameters 它写的都不是appender。

如何从MP4文件中提取音频并将其转换为C#中的FLAC文件?

我的目标是编写C#,将Microsoft LYNC会议音频转换为文本。 到目前为止, 这是我的项目。 最初我试图从麦克风录制,将其保存到WAV然后将WAV转换为FLAC并使用GoogleSpeechAPI将FLAC转换为文本。 但我把录音麦克风音频卡在了WAV格式。 问题是它需要采用非常特定的WAV格式,即int或int24,WAV可以使用WAV到FLAC转换方法。 我每个样本记录8位而不是每个样本(16或24位)。 所以,重新开始。 Microsoft Lync直接记录会议并将其保存为MP4格式的video。 如果我能以某种方式编写代码将MP4转换为FLAC,那也可以解决我的问题。 任何代码示例?

我希望能够通过网络从BIOS中提取错误日志

我希望能够通过网络从BIOS中提取错误日志。 在MSDN中查看Win32_BIOS我没有看到任何定义错误日志的内容。 很想用WMI在C#中做到这一点,但我愿意接受建议。 可能吗? Win32_BIOS没有包含BIOS错误日志的属性(不知道这是否是正确的术语)。 是否有可用于在本地或从网络中提取此信息的库,API等?

并发文件写入

如何写入可由多个源访问的文本文件(可能以并发方式),确保没有写入操作丢失? 就像,如果两个不同的进程在同一时刻写入文件,这可能会导致问题。 简单的解决方案(不是非常快速而且不是非常优雅)将在开始进程(创建.lock文件或类似文件)时锁定文件并在写入完成时释放它(删除锁定)。 当开始写时,我会检查.lock文件是否存在并延迟写入直到文件被释放。 对于这种情况,建议的模式是什么? 谢谢 编辑我的意思是进程,如来自不同客户端的不同程序,不同用户等,而不是同一程序中的线程

C#:用于文本文件的尾部程序

我有一个日志文件,不断记录短线。 我需要开发一个服务来响应(或轮询或监听)添加到该文件的新行,这是一种unix’尾程序,因此我的服务始终是最新的文件。 我不认为打开读取流并保持打开是一个好主意。 也许我应该使用FileSystemWatcher类。 长话短说,我需要实时解析添加到此文件的每一个新行。 任何想法的帮助或指示真的很感激。 编辑 我一直不太清楚。 我不需要任何程序,我正在编写程序。 用于读取(然后处理)添加到文件的每个新行。 我的意思是我正在寻找的是一种方法论(或者:如何实现这个?),以便不断地跟踪一直保持写入的文件。 我必须开发一个“侦听”此文件并在每个新行上执行操作的Windows服务。 因此,如果在给定时刻文件是: 12.31.07 – jdoe [log on] 347 12.32.08 – ssmith [log on] 479 12.32.08 – mpeterson [log off] 532 12.32.09 – apacino [log on] 123 在线的那一刻 12.32.11 – pchorr [log on] 127 由日志记录程序(我无法访问)添加到日志文件中,我需要我的Windows服务“对行成瘾”做出反应,拦截新行( 12.32.11 – pchorr [log on] 127 )和处理它。 等等。 现在,我不知道该怎么做。 我应该每隔n秒轮询一次文件,将最后一条读取行存储在内存中并仅处理新添加的行。 […]