微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Log4net 不插入数据到oracle 数据库?

如何解决Log4net 不插入数据到oracle 数据库?

我尝试使用 log4net 将信息记录到数据库中,但我现在坚持使用它。不知道我做错了什么。无论我发送的任何消息都没有在数据库中收到,都没有显示任何错误

下面是我的 logger.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
  </configSections>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
  <appSettings>
    <add key="log4net.Internal.Debug" value="true "/>
  </appSettings>
  <log4net>
    <root>
      <level value="ALL"/>
      <appender-ref ref="adonetappender_Oracle"/>
      <appender-ref ref="WebInformaction" />
      <appender-ref ref="WebError" />
      <appender-ref ref="adonetappender"/>
    </root>
    <appender name="WebInformaction" type="log4net.Appender.adonetappender,log4net">
      <connectionType value="Oracle.ManagedDataAccess.Client.OracleConnection,Oracle.ManagedDataAccess,Version=4.121.2.0,Culture=neutral,PublicKeyToken=89b483f429c47342"/>
      <connectionString value="Mydatasource" />
      <commandText value="INSERT INTO EVENTS_LOG (ID,LOG_DATE,THREAD,LOG_LEVEL,LOGGER,MESSAGE,EXCEPTION) VALUES (EVENTS_LOG_SEQ.nextval,:log_date,:thread,:log_level,:logger,:message,:exception)"/>
      <bufferSize value="0"/>
      <parameter>
        <parameterName value=":log_date"/>
        <dbType value="DateTime"/>
        <layout type="log4net.Layout.RawTimeStampLayout"/>
      </parameter>
      <parameter>
        <parameterName value=":thread"/>
        <dbType value="String"/>
        <size value="255"/>
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%thread"/>
        </layout>
      </parameter>
      <parameter>
        <parameterName value=":log_level"/>
        <dbType value="String"/>
        <size value="50"/>
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%level"/>
        </layout>
      </parameter>
      <parameter>
        <parameterName value=":logger"/>
        <dbType value="String"/>
        <size value="255"/>
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%logger"/>
        </layout>
      </parameter>
      <parameter>
        <parameterName value=":message"/>
        <dbType value="String"/>
        <size value="4000"/>
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%message"/>
        </layout>
      </parameter>
      <parameter>
        <parameterName value=":exception"/>
        <dbType value="String"/>
        <size value="2000"/>
        <layout type="log4net.Layout.ExceptionLayout"/>
      </parameter>
    </appender>
    <logger name="Informaction">
      <level value="All"/>
      <appender-ref ref="Informaction" />
    </logger>
  </log4net>
</configuration>

访问它的代码

using AuditResourcesTool.Common;
using AuditResourcesTool.Common.Attributes;
using AuditResourcesTool.Common.Enums;
using AuditResourcesTool.Common.Extensions;
using AuditResourcesTool.Common.Models;
using AuditResourcesTool.Common.Services;
using log4net;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace AuditResourcesTool.Web.Controllers
{
    [ErrorHandler]
    // GET: Base
    public class BaseController : Controller
        {
            // public readonly log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
            public ILog Log = LogManager.GetLogger(typeof(BaseController));
            public ILog ErrorLog = LogManager.GetLogger("Error");
            public ILog InfoLog = LogManager.GetLogger("Informaction");

            public void Warning(string message)
            {
                //logger.Warn(message);
                InfoLog.Warn(message);
                AddToTempData(Alerts.WARNING.ToLabel(),message);
            }

            public void Success(string message)
            {
                //ogger.Info(message);
                InfoLog.Info(message);
                AddToTempData(Alerts.SUCCESS.ToLabel(),message);
            }

            public void information(string message)
            {
                //logger.Info(message);
                InfoLog.Info(message);
                AddToTempData(Alerts.informatION.ToLabel(),message);
            }
            public void Error(string message)
            {
                //logger.Error(message);
                ErrorLog.Error(message);
                AddToTempData(Alerts.ERROR.ToLabel(),message);
            }
            public void AddToTempData(string type,string message)
            {
                if (TempData.ContainsKey(type))
                {
                    TempData[type] = TempData[type] + Environment.NewLine + message;
                }
                else
                {
                    TempData.Add(type,message);
                }
            }


            public ActionResult Authorize()
            {
                return RedirectToAction("Index","Study");
            }


            public bool IsLoggedIn()
            {
                return SessionService.Getobject(Constants.USER_SESSION_KEY) != null
                    && (SessionService.Getobject(Constants.USER_SESSION_KEY) is usermodel);
            }

            public usermodel GetCurrentUser()
            {
                return this.IsLoggedIn() ? (SessionService.Getobject(Constants.USER_SESSION_KEY) as usermodel) : null;
            }

            public HttpCookie SetCookie(string identity)
            {
                var cookie = new HttpCookie(Constants.USER_SESSION_KEY,identity);
                cookie.Expires = DateTime.Now.AddDays(10);
                Response.SetCookie(cookie);
                return cookie;
            }

            public string GetCookie()
            {
                var cookie = Request.Cookies[Constants.USER_SESSION_KEY];

                if (cookie != null)
                    return cookie.Value;

                return null;
            }

            public void Remove()
            {
                if (Request.Cookies.AllKeys.Contains(Constants.USER_SESSION_KEY))
                {
                    HttpCookie cookie = this.ControllerContext.HttpContext.Request.Cookies[Constants.USER_SESSION_KEY];
                    cookie.Expires = DateTime.Now.AddDays(-1);
                    Response.Cookies.Add(cookie);
                }
            }


        }
    
}

我的日志表:

CREATE TABLE EVENTS_LOG 
(
  ID NUMBER(10,0) NOT NULL,LOG_DATE TIMESTAMP(3),THREAD VARCHAR2(255 BYTE),LOG_LEVEL VARCHAR2(50 BYTE),LOGGER VARCHAR2(255 BYTE),MESSAGE VARCHAR2(4000 BYTE),EXCEPTION VARCHAR2(2000 BYTE) 
);

如果有人在我做错的地方帮助我,那就太好了。提前致谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。