问题标签 [log4net-appender]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
525 浏览

log4net - 当应用程序作为 Windows 服务运行时,Log4Net TelnetAppender 不运行

我有一个使用滚动日志附加程序和远程登录附加程序的应用程序。该应用程序可以作为服务或桌面应用程序运行。当我作为桌面应用程序运行时,滚动附加程序和远程登录附加程序都可以工作,我可以远程登录到端口并查看日志消息。当我将应用程序作为服务运行时,滚动日志附加程序可以工作,但 telnet 附加程序不能。

我尝试过 netstat -nab 并在作为桌面应用程序运行时看到了端口,但是当作为服务运行时,telnet 无法连接到端口,并且服务 exe 没有出现在 netstat 的输出中。

我尝试将服务登录更改为我的本地帐户无济于事,并尝试关闭 Windows 防火墙。

以下是我的配置,如果有人能对此有所了解,我将不胜感激。

0 投票
0 回答
325 浏览

logging - 如何使用 log4net 在 Appender 的日志文件名中嵌入记录器名称

使用 log4net,有没有办法将记录器的名称嵌入到 Appender 的日志文件名称中?

在下文中,我想在文件名中包含记录器的名称来代替 (My.Logger)。

我意识到附加程序不应该关心它是哪个记录器,但它的信息在布局中可用。

我的目标是我希望能够打开/关闭特定命名空间的日志记录到相应的文件,而不必为每个文件定义一个唯一的 Appender。

0 投票
0 回答
254 浏览

sql-server - 使用 Log4Net 和 AdoNetAppender 将 XMLLayout 参数写入 DbType XML 字段

很直接的问题。

我在 SQL Server 数据库上有一个表,其中有一个 DbType 为 XML 的字段。

我想使用 Log4Net 的 XML 布局格式写入该字段,而不编写自定义附加程序;使用内置的 AdoNetAppender。

下面是我当前的代码,但是,当它尝试记录时,它会插入一条记录,但“异常”字段将为空白。

(为了这个问题,我已经简化了代码;它曾经使用模式布局写入许多其他字段。我已经确认 Appender 确实工作并且 log4net 配置正确,我只是想记录使用 log4net 包含的 XMLLayout 到 XML 的 dbtype。)

0 投票
2 回答
5157 浏览

log4net - Log4Net 从日志中过滤掉 INFO,只显示 DEBUG & ERROR

有没有办法从日志中过滤掉 INFO 并且只显示 DEBUG & ERROR,使用 web.config 中的配置?

0 投票
2 回答
2666 浏览

c# - Log4Net:如何将程序内部的日志记录结果输出到变量中?

我正在尝试学习使用Log4Net来改进我的程序中的日志记录技术。我已经阅读了 Log4Net 网站上提供的文档,但是我有这些问题。

这是Log4Net网站上的示例程序中显示的最简单的输出,由BasicConfigurator.Configure().

我的程序已经有一个窗格(在调试模式下)来显示程序的流程,该流程在许多异步尝试中循环。所以当我运行它时,我可以看到程序的流程(典型的批量调试方法)。

在这个级别,据我所知,通过使用 Log4Net,我可以在那些时刻收集日志,这些日志可以附加到许多不同的输出方法中,例如控制台外部文件、数据库等。这导致代码加倍. 在每个测试点中,一行用于将日志输出到 UI,另一行用于 Log4Net 的日志。

是否有任何方法可以将其中一个附加程序的内容(例如上面显示的那个)输出到字符串类型的变量或类似的变量,以便能够在运行时显示它?

我不确定您如何在 WPF 应用程序中看到控制台的输出将Log4Net输出到一个文件中,然后将它的比赛打印回一个字符串,这似乎很有趣。


更新

Show output from:下拉菜单设置为“Debug”时,Console Appender可以在Visual Studio的“输出”窗口中看到输出。非常感谢@Aron 指出这一点。

0 投票
0 回答
318 浏览

asp.net - 除非我正在积极调试应用程序,否则自定义 log4net 附加程序不起作用

我创建了一个自定义 log4net 附加程序,它在我调试应用程序时效果很好,但是一旦我部署应用程序(即使在调试模式下)它就会停止工作。

如果我在服务器上进行远程调试(通过附加到进程),我的自定义附加程序就可以正常工作。

我已将此添加到 Assemblyinfo.cs。 [assembly: log4net.Config.XmlConfigurator(Watch = true)]

在 Global.asax 文件中的 Application_Start 中,我有: log4net.Config.XmlConfigurator.Configure();

我注意到的一件事是,部署的应用程序确实调用了方法 ActivateOptions(),但它要么没有调用 Append(LoggingEvent loggingEvent),要么就是不工作。

我很感激任何帮助。

0 投票
2 回答
1408 浏览

c# - 如何防止 Log4Net 截断异常?

我将 Log4Net 事件插入 SQL 数据库。Message 和 Exception 字段都是 8000 个字符,但偶尔会出现超过 8000 个字符的事件,并且数据会被截断。

是否有任何可配置的方式让它将事件分成多行?如果没有,我目前正在考虑实现我自己的 ILog,它会自动处理将日志记录事件分块,这样我就不会得到任何截断的数据。有没有人有更好的主意?

编辑 - 记录配置/数据库列定义

这是我当前的参数配置:

数据库表定义如下:

0 投票
2 回答
1195 浏览

c# - log4net 以编程方式将目标从文本更改为数据库到事件日志

有没有办法让 log4net 通过程序中的某些条件更改预期日志的目标位置,而无需更新和重新部署 xml 配置?

我不想要任何依赖于配置的解决方案。它应该纯粹通过代码工作。我有一定的条件,我可以根据这些条件告诉我的程序选择哪个目标。在某些情况下,程序将自动在预定义路径上的文本文件或预定义服务器/数据库上的 SQL Server 或我的应用程序套件名称下的事件日志之间切换。文件路径、sql 连接字符串和事件日志参数将是唯一存储在我的应用程序配置文件中的内容。

这在 log4net 上是否可行?我找不到与我搜索的内容相关的任何内容,因此我还没有可以显示的任何代码。大多数答案都是关于如何更改默认目录位置,但这不是我想要的。

谢谢

0 投票
1 回答
3792 浏览

log4net - Log4Net 写入不同的文件

我正在制作一个车辆跟踪应用程序(ASP.NET MVC C#)。我有获取 GPS 设备发送的数据的 Windows 服务。在服务中,我编写了记录数据的代码。

现在考虑一个正常的日志记录场景,其中我只有一个 GPS 设备。

08:00:24 OnDataAvailable 方法内部

08:00:25 收到数据 - 设备 ID:2 数据:abcdefghijkl

08:00:25 离开 OnDataAvailable

以及更多声明。然后它重复


现在,当我有多个 GPS 设备发送数据时,日志会变得混杂。那就是我有以下类型的日志:

08:00:23 OnDataAvailable 方法内部 08:00:24 OnDataAvailable 方法内部

08:00:25 收到数据 - 设备 ID:2 数据:abcdefghijkl

08:00:25 离开 OnDataAvailable

08:00:26 收到数据 - 设备 ID:1 数据:abcdefghijkl

08:00:26 离开 OnDataAvailable

现在我想要实现的是,我应该为不同的设备拥有不同的日志文件。因此,对于 ID 为 1 的设备,我有 Log_D1.txt,对于设备 ID 2,我有 Log_D2.txt。

如果有人能指出我正确的方向,将不胜感激。

0 投票
1 回答
1026 浏览

c# - Log4net 随机停止记录

我在我的服务的事件日志中收到以下消息:

我在 web 服务旁边的系统中的更多项目中使用 log4net,它也只是随机卡在那里。

我查看了发生异常的 log4net 的源文件,它在尝试执行文件滚动时发生

是什么原因造成的?它只是完全随机发生