当前位置: 首页 > 知识库问答 >
问题:

Log4net到数据库不工作

廉志强
2023-03-14

我在通过log4net记录到数据库时遇到问题。

    < li >用户有权插入数据库 < li >相同的insert语句在Management Studio中有效 < li>log4net确实记录到文件,但不记录到数据库 < li >连接字符串正确(在其他应用程序中相同)

获得了以下配置:

<log4net debug="true">
    <appender name="FileAppender" type="log4net.Appender.FileAppender">
        <file type="log4net.Util.PatternString" value="Logs\JallaJalla (%date{yyyyMMdd HHmmss}).log" />
        <appendToFile value="true" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date %logger %-5level - %message%newline" />
        </layout>
    </appender>

    <appender name="ADONetAppender" type="log4net.Appender.AdoNetAppender">
        <threshold value="DEBUG"/>
        <bufferSize value="1" />
        <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
        <connectionString value="Data Source=xxx;Initial Catalog=xxx;User Id=xxx;Password=xxx;" />
        <commandText value="INSERT INTO [log].[tLogTable] ([Message],[Level]) VALUES (@message, @log_level)" />

        <parameter>
            <parameterName value="@message" />
            <dbType value="String" />
            <size value="4000" />
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%message" />
            </layout>
        </parameter>

        <parameter>
            <parameterName value="@log_level" />
            <dbType value="String" />
            <size value="50" />
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%level" />
            </layout>
        </parameter>

    </appender>

    <logger name="ADONetAppender">
        <level value="ALL" />
        <appender-ref ref="ADONetAppender" />
    </logger>

    <logger name="FileLogger">
        <level value="ALL" />
        <appender-ref ref="FileAppender" />
    </logger>
</log4net>

数据库中的两列是:

  • 消息varchar(max)不为空。
  • 级别varchar(50)不为空

谢谢

共有2个答案

叶煌
2023-03-14

我自己发现了问题...

private static readonly ILog Logger = LogManager.GetLogger( "FileLogger" );

记录器的名称设置为“文件记录器”,因此通过添加

<appender-ref ref="ADONetAppender" /> 

里面

<logger name="FileLogger">
    <level value="ALL" />
    <appender-ref ref="FileAppender" />
    <appender-ref ref="ADONetAppender" /> 
</logger>

解决了问题!

无论如何,谢谢!

濮阳宏硕
2023-03-14

我猜你忘了添加以下您想要启用日志记录:

[assembly: log4net.Config.XmlConfigurator()]

或来自代码:

log4net.Config.XmlConfigurator.Configure();
 类似资料:
  • 我的PHP代码中的插入数据sql命令不工作。有人能帮帮忙吗? 我有一个注册表,它从输入字段(姓名、姓氏、电子邮件、用户名和密码)中获取值 用户在此字段中输入的值应保存到我的表“users”中,该表有以下列(ID[主键/INT]、name[文本]、lastname[文本]、e-mail[变量字符]、username[变量字符]和password[变量字符])。 这是我目前的代码:

  • 我对java非常陌生。所以如果我犯了愚蠢的错误,我很抱歉。我正在尝试执行servlet中的以下代码,但是在我将值提交到我在索引中创建的登录表单之后,什么也没有发生。html。另外,我还为会话创建了另一个servlet。预期的输出是重定向到我从数据库验证用户名和密码后创建的另一个jsp页面

  • 我想用Rxjava使用ROOM,以下是我的代码: 我的数据库结构类: 这是我的ProductDAO课程: 这是我用于创建和管理数据库的数据库类: 这是我处理数据库的活动: 下面是发生的情况,当我第一次启动我的activity类时,没有发生错误,当我从emulator下载创建的数据库并在sqlite数据库管理器中打开它时,问题是文件是空的,没有创建数据库 当我回去重新打开数据库时,我得到了很多错误:

  • 我试图一次将多行插入数据库。 用户最多可以添加5个新行,以便将血液结果插入数据库。 有一个添加更多按钮允许他们这样做。 我有一个循环来遍历每个条目,但是当我单击submit时,只会提交一个条目。第一,我不确定我哪里出了问题,任何帮助都将不胜感激。 循环在这个代码块的底部,但我不确定这就是问题所在。

  • 我使用 .deb 在 Ubuntu 系统中安装了 MySQL Workbench(community-6.2.3)。 工作台会话似乎看不到其他会话(应用程序/命令行客户端)对数据库的更新(DML)。 新会话能够在其启动时看到数据库的正确状态,但之后发生的更改对它不可见。似乎工作台 会话在工作台提交后确实与数据库同步。 我得到。 非工作台会话似乎没有任何这些问题。 我这是少了个配置什么的吗 更新:

  • 一、本功能说明 对全站数据进行导出备份或者将备份的数据库恢复 注意事项:   备份数据请确保根目录的caches文件夹具有写入权限。 二、子功能导航 1.数据备份 2.数据还原 3.数据修复 三、功能详解 1.数据备份 1).如何进入本功能 导航栏 选择扩展 -> 菜单栏 选择 数据库工具 2).界面解释 点击后显示如下界面 界面详述 1). 分卷大小: 您可以自行定义单个数据包文件的大小,不建议