log4net和SQL Server 2000

2023-10-31

log4net是在项目中很常用的一个日志工具,用来记录系统的各种信息和一些异常情况. log4net可以把信息以各种方式输出.关于log4net的介绍和使用,官方网站上有详细的说明.

今天在使用log4net的时候遇到几个问题,想和大家讨论一下. 以log4net官网上的那个例子为例:
配置文件如下:

   1<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
2    <bufferSize value="100" />
3    <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
4    <connectionString value="data source=[database server];initial catalog=[database name];integrated security=false;persist security info=True;User ID=[user];Password=[password]" />
5    <commandText value="Insert INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />
6    <parameter>
7        <parameterName value="@log_date" />
8        <dbType value="DateTime" />
9        <layout type="log4net.Layout.RawTimeStampLayout" />
10    </parameter>
11    <parameter>
12        <parameterName value="@thread" />
13        <dbType value="String" />
14        <size value="255" />
15        <layout type="log4net.Layout.PatternLayout">
16            <conversionPattern value="%thread" />
17        </layout>
18    </parameter>
19    <parameter>
20        <parameterName value="@log_level" />
21        <dbType value="String" />
22        <size value="50" />
23        <layout type="log4net.Layout.PatternLayout">
24            <conversionPattern value="%level" />
25        </layout>
26    </parameter>
27    <parameter>
28        <parameterName value="@logger" />
29        <dbType value="String" />
30        <size value="255" />
31        <layout type="log4net.Layout.PatternLayout">
32            <conversionPattern value="%logger" />
33        </layout>
34    </parameter>
35    <parameter>
36        <parameterName value="@message" />
37        <dbType value="String" />
38        <size value="4000" />
39        <layout type="log4net.Layout.PatternLayout">
40            <conversionPattern value="%message" />
41        </layout>
42    </parameter>
43    <parameter>
44        <parameterName value="@exception" />
45        <dbType value="String" />
46        <size value="2000" />
47        <layout type="log4net.Layout.ExceptionLayout" />
48    </parameter>
49</appender>
50
对于其中的<buffersize value=100>是指当log信息达到100条时, log信息就会被写到数据库中,但是当我设置value=2时,我发现当有两条log信息时,信息并没有被写到数据库中,要到第三条log信息产生时,前两条log信息才被写到数据中,继续有新的log信息生成时也是同样的情况。那我就觉得log4net实现buffersize的机制是当有一条新的log信息产生时,系统会检查已存在的信息是否达到buffersize了,如果到了,那就把已经存在的Log信息写到数据中,而最新的那条log信息并没有被写到数据库中。

log4net通常也被用来记录系统的各种异常信息,也非常方便。但是不知道log4net本生有异常时,似乎并没有任何异常信息被记录下来(也可能是我不知道)。以上面的配置信息为例,“@message"的长度被设置为4000,但是如果数据库中字段的长度没有4000,比如250。这种设置情况很少,但是确实是一个问题。而这个时候,buffersize value值不是0,而是比如100。那么当第101条log信息产生时,系统就会开始把log信息写到数据中。而其中第一条的message信息的长度超过250,这个时候就会发生异常,从这个时候开始,所有的log信息就都不会被写到数据中了。也不会有任何异常信息抛出来。不知道是我的认识不够深入呢,还是这个真的是个问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

log4net和SQL Server 2000 的相关文章

  • 删除文件的最后 10 个字符

    我想删除文件的最后 10 个字符 说一个字符串 hello i am a c learner 是文件内的数据 我只是希望该文件是 hello i am a 文件的最后 10 个字符 即字符串 c learner 应在文件内消除 解决方案 将
  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • 没有特殊字符的密码验证器

    我是 RegEx 的新手 已经进行了大量搜索 但没有找到任何具体内容 我正在编写一个验证密码字符串的正则表达式 可接受的字符串必须至少具有 4 种字符类型中的 3 种 数字 小写字母 大写字母 特殊字符 我对包含有一个想法 也就是说 如果这
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • 如何知道抛出了哪个异常

    我正在对我们的代码库进行审查 有很多这样的陈述 try doSomething catch Exception e 但我想要一种方法来知道 doSomething 抛出了哪个异常 在 doSomething 的实现中没有 throw 语句
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 为什么 isnormal() 说一个值是正常的,而实际上不是?

    include
  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置

随机推荐

  • 阿里微服务架构Spring Cloud Alibaba Nacos实战

    Spring Cloud Alibaba Nacos 1 常用特性 2 注册中心 配置中心对比 3 生态图 4 安装 5 名词解析 6 代码实战 注册中心 配置中心 nacos官方文档 https nacos io zh cn docs q
  • multipart/form-data格式接口调用工具类,实现文件上传

    1 添加依赖
  • Access violation at address 00000000. Read of address 00000000.的解决办法

    Access violation at address 00000000 Read of address 00000000 原理 解决办法 在使用spacesniffer查看C盘空间的时候报错 原理 这个问题是关于Access Violat
  • ZBrush中自动保存在哪里

    在使用 ZBrush 执行任何会话期间 您都可以设置将文件自动保存 并可以修改保存时间间隔 文件保存位置等设置 发生系统错误后要重新启动ZBrush时 可以从临时文件夹或指定的文件夹中恢复备份文件 如果您选择不恢复备份文件 退出应用程序后文
  • Android内存泄漏原因及解决办法

    前言 面试中最常问的就是 你了解Android内存泄漏和Android内存溢出的原因吗 请简述一下 然后大多数的人都能说出原因及其例子和解决办法 但是实际项目中稍微不注意还是会导致内存泄漏 今天就来梳理一下那些是常见的内存泄漏写法和解决方法
  • 1.2小尺度衰落

    书接上文 谈完大尺度衰落 接下来谈谈传输过程中遇到的小尺度衰落 小尺度衰落是指短期内的衰落 具体指移动台移动小距离时 接收信号在短期内的波动 通常可由以下因素决定 多径传播 移动台的速度 周围物体的速度和信号传输带宽 1 2 1 小尺度衰落
  • 基于Flex (词法分析生成器) 构造词法分析器

    备忘录1 阿林的词法分析器答辩内容 前言 我们知道 通过一些词法分析生成器工具可以完成一个编译器的词法分析过程 比如说flex 我们可以通过它完成词法分析过程 但是它完成了这个过程并不会将整个词法分析的结果打印出来 因此我们需要使用正则表达
  • 小程序开发之WebSocket

    本文旨在记录如何实现小程序使用websocket接受 推送消息 websocket 是什么 websocket 服务器端和客户端 小程序如何和websocket建立连接 并实现消息推送 接受 websocket是什么 websocket是一
  • 一套干净的企业数据管理系统,拿来直接用

    项目介绍 此项目为企业数据管理系统的后端部分 前端部分请参考vue admin 项目实现了菜单管理 用户管理 角色管理和权限管理四个基础模块 前端菜单管理结合动态路由可自由添加菜单 结合Shiro权限管理实现了菜单和按钮的权限控制 前端采用
  • 简单的坦克

    作业题目 坦克对战游戏AI设计 作业要求 从商店下载游戏 Kawaii Tank 或 其他坦克模型 构建 AI 对战坦克 具体要求 使用 感知 思考 行为 模型 建模 AI 坦克 场景中要放置一些障碍阻挡对手视线 坦克需要放置一个矩阵包围盒
  • python画图渐变颜色的代号_matplotlib画渐变条形图

    官网上的就是这个图 我也看了代码 我也查了很多人写的代码 写的介绍 但是感觉都没有介绍到要点 都是在糊弄 今天本着从我自己的画图理念出发 写一写我的理解 我觉得画图主要的还是数据 数据不行 数据处理的不对 很有可能画不出来图 也导致出来的图
  • 关于安装Ubuntu18.04.5 版本系统无限循环卡在登录界面的解决方案

    关于安装Ubuntu18 04 5 版本系统无限循环卡在登录界面的解决方案 一 处于Ubuntu的登录界面 一 处于Ubuntu的登录界面 1 按Ctrl ALt F1进入命令行模式 输入用户名 密码 登录 2 卸载显卡驱动 sudo ap
  • xyz:function(){....} 相当于function xyz()

    xyz function 相当于function xyz
  • 没有服务器,unity 上传图片到oss服务器生成二维码

    一 前言 最近接了个外包 kinect换装 敬礼上传图片到服务器 返回链接二维码分享 自己没有服务器 问朋友朋友说可以用阿里的oss 直接上传展示 于是研究了下 然后分享下遇到的坑和制作过程 二 重点 这个里面我觉得有两点比较坑 源码中都已
  • HCIP 三层交换机

    一 实现VLAN间通信 在传统的交换机组网中 默认所有网络都处于同一个广播域 带来了许多问题 VLAN技术的提出 满足了二层组网隔离广播域需求 使得属于不同的VLAN间网络无法通信 但不同VLAN之间又存在着互相访问的需求 实际网络部署中一
  • spring-boot mybatis-plus 集成 + 代码生成器自定义controller 模板

    mybatis plus3 x 代码生成器请看以下链接 https blog csdn net qq 33842795 article details 103682488 maven依赖 spring boot 和 thymeleaf 结合
  • 2017-7-28 2-5 编写函数any(s1,s2), 将字符串s2中任一字符在字符串s1中第一次出现的位置作为返回结果,如果s1中不包含s2中的字符,则返回-1

    include
  • 优秀logo设计解析_优秀Logo设计!形/美/意的表现与运用

    文 李艳 作为一种浓缩的 独特的视觉语言 标志设计以其精炼图形 独具美感的视觉特征征和准确的诉求力 传播者特定的信息 标志设计是一门艺术性和实用性共存的设计艺术 它通常以简洁明了 富于张力的视觉效果进行传播 优秀的标志设计具有强烈的视觉冲击
  • 因果推断1

    相关性并不意味着因果关系 这个道理对大家都不陌生 我们如何科学 优雅地做一份关于 因果关系 数据分析呢 在这篇文章里 我们从因果推断对于数据分析的重要性出发 和大家分享一个因果推断的经典框架 一组因果推断的必备假设和一个因果推断的基础方法
  • log4net和SQL Server 2000

    log4net是在项目中很常用的一个日志工具 用来记录系统的各种信息和一些异常情况 log4net可以把信息以各种方式输出 关于log4net的介绍和使用 官方网站上有详细的说明 今天在使用log4net的时候遇到几个问题 想和大家讨论一下