如何解决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 举报,一经查实,本站将立刻删除。