问题标签 [adonetappender]

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 投票
2 回答
1644 浏览

c# - log4net 多个 adonetappender

有没有办法在同一个应用程序中使用多个 ADONetAppender。目前我有一个 ado appender 记录到“日志”表。我想添加另一个 ADONetAppender 以登录到同一应用程序中的另一个表。搜索谷歌并没有返回太多帮助。

请告诉我。

谢谢

0 投票
2 回答
565 浏览

azure-table-storage - 如何使用 log4Net adonetappender 将数据存储到 azure table stroage

我们正在使用 log4Net Adonetappender 将我们的应用程序使用配置的审计日志数据存储到 sqlserver 表中,现在我们正在将我们的应用程序移动到 Windows Azure,现在我们想使用相同的 adonetappender 将数据存储到 Windows azure 表存储中由于 sql azure 存储的成本昂贵,因此无法使用 sql azure 数据库。如果我们想存储到 sql azure 中,不需要任何修改,我们的应用程序运行良好,没有任何问题,但是我们希望将此审计日志数据存储到 windows azure 表存储中,因为该数据快速增长并且使用了 azure 表存储与 sql azure 相比,具有高可扩展性和更低的成本。

0 投票
1 回答
6179 浏览

c# - log4net 通过异常参数将完整堆栈跟踪添加到数据库表

对于 log4net 配置.. 这是我的参数设置

我在 ADONetAppender 中的存储过程设置如下:

在proc内部,@exception的输入参数如下:

存储的过程写入表“MYTable”,其“异常”列长度为 VARCHAR 8000。

我可以在“MYTable”中创建条目,但在创建条目后,该条目不包含整个异常堆栈跟踪。看起来堆栈跟踪被截断,最多只包含 1700 个字符。

在 log4net 中将完整堆栈跟踪记录到数据库的最佳方法是什么?

我错过了什么?

请帮忙。

谢谢

0 投票
1 回答
8251 浏览

c# - Log4Net 不适用于我的海关属性

这次我尝试登录到带有 L4N 的数据库,这是表的结构:

为了填写这张表,我使用了这个 appender:

记录器是这样的:

并且...要从 C# 传递数据,我使用此方法:

我不知道 LoggingEvent 是如何工作的,但我用它来填充其他表并完美地工作。如果有人可以帮助我解决这个问题,我很感激!

感谢阅读我糟糕的英语!

0 投票
1 回答
7580 浏览

c# - log4net AdoNetAppender 中的记录延迟?

我有这样的AdoNetAppender设置:

从技术上讲,它是有效的,因为当我在本地停止在 IIS 8 Express 上运行的网站时,记录就会显示出来。然而,这正是问题所在,直到我停止网站,记录才会显示出来。

我试过useTransactions开和关。

有人可以帮忙吗?

0 投票
3 回答
5137 浏览

c# - Log4NET、ADONetAppender 和自定义字段

我可以使用 ADONetAppender 设置 log4NET,当我想通过 log.Info(message) 记录消息时捕获事物的状态时,一切正常。

由于我将根据在整个应用程序中更改的 ActionID 从应用程序中的各个位置进行日志记录,因此我如何扩展事物以便我可以发出诸如 log.Info(ActionID, message) 之类的调用,而 ActionID 最终在数据库?

0 投票
0 回答
424 浏览

c# - 配置 log4net 以连接到最初脱机的数据库引擎

我有一个使用 log4net 设置的 Windows 服务,记录到一个文件和一个 SQL Server 数据库。

在初始化期间,我会XmlConfigurator.Configure()打电话。在服务的早期,我执行了一些日志记录。它是一个 Windows 服务,因此它在 SQLServer 启动的同时启动。我的服务在数据库启动之前进行日志记录。当数据库启动时,log4net 已放弃登录数据库并且无法继续。

我希望 log4netADONetAppender在数据库在线后立即开始附加到日志数据库。这可能吗?我可以XmlConfigurator.Configure()在数据库恢复在线时打电话吗?

0 投票
0 回答
376 浏览

oracle - log4net 给出 Oracle 数据库连接错误

我遇到了这个问题,在我的桌面 log4net 上配置为登录到 Oracle 数据库日志没有任何问题,但是当我在 Web 服务器上部署相同的东西时,它给了我以下错误

桌面系统是 32 位的,而服务器是 64 位的。Entity Framwework 在使用 Oracle 的两个系统上都没有任何问题。我已经在服务器上安装了 ODAC121010Xcopy_x64 和 ODAC121010Xcopy_x32。

0 投票
2 回答
4465 浏览

c# - Log4net、ADONetAppender 和存储过程:设置精度和规模?

我假设的一些小事情的组合正在按照我的预期阻止我的应用程序进行数据库日志记录。

  • 文本命令有效。INSERT和命令都EXEC工作并且数据被输入到数据库中
  • 如果我取消注释ExecutionTime参数,它将停止工作。,我知道有人在某个时候工作,但我不明白为什么取消注释参数,更不用说添加它,会导致 Appender 静默失败。
    • 现在调试工作发现错误。下面列出并更新了精度和比例。
  • 我正在尝试启用内部调试,但它似乎不想工作。发现问题。将配置部分移动到正确的位置(不在 log4net 下)。
  • 如果我将 commandType 切换为StoredProcedure它停止工作,即使文本版本也有效
    • 还是个问题。尝试不同的事情,但没有太多的运气

SQL:

应用程序配置

log4net.config

更新 1 现在我的 Trace 正在工作......它抱怨 DB 命令需要明确设置精度和比例。不知道该怎么做,因为我见过的例子都没有

log4net:错误 [AdoNetAppender] 错误代码:GenericFailure。无法准备数据库命令 [ exec InsertLog @log_date,@thread,@Context,@Level,@Logger,@Message,@MethodName,@Parameters,@Exception; ] System.InvalidOperationException:SqlCommand.Prepare 方法要求“十进制”类型的参数具有明确设置的精度和比例。在 System.Data.SqlClient.SqlParameter.Prepare(SqlCommand cmd) 在 System.Data.SqlClient.SqlCommand.Prepare() 在 log4net.Appender.AdoNetAppender.InitializeDatabaseCommand()

更新 2 随着精度/比例的增加,错误发生了变化。它现在抱怨:

log4net:错误 [AdoNetAppender] 错误代码:GenericFailure。DoAppend System.FormatException 失败:无法将参数值从字符串转换为十进制。---> System.FormatException:输入字符串的格式不正确。

0 投票
2 回答
708 浏览

c# - 在 Log4Net 中的 AdoNetAppender 中使用缓冲区进行延迟评估

我正在使用 Log4Net 自定义属性将一些环境信息添加到我的日志中。我创建了一个具有全局可访问属性的实用程序类,我的程序类使用它来存储上下文信息(订单 ID、用户 ID 等)以及围绕它们的惰性包装器,因此我不需要一直更改 Log4Net ThreadContext。像这样的东西:

无论我想作为属性向 Log4Net 公开什么值,我只需在应用程序开始时使用这个惰性求值器进行注册。

它适用于无缓冲区附加程序(例如滚动文件)或在 AdoNetAppender 中将缓冲区设置为 0 时。但是,当我有缓冲区 > 1时, Log4Net 会推迟对该属性的评估,直到缓冲区在应用程序结束时刷新或缓冲区中的条目 > bufferSize时。

发生这种情况时,信息不再位于全局属性中,或者它的值已更改(如循环处理订单),因此我的日志中出现错误或空值。

我可以看到解决此问题的唯一选项是停止使用缓冲区,以便在刷新条目时在所有调用中评估属性值。由于仅在刷新缓冲区时才评估 ThreadContext 中的属性,因此恐怕我不能为每个日志调用设置不同的属性值。

有什么方法可以让 Log4Net 在缓冲条目而不是刷新条目时评估 ThreadContext (或它具有的其他上下文)?

谢谢