写日志出错,请问怎回事?附有代码

问题描述

在系统出错时通过log4net写日志的类,但在写WriteEventLog()写日志的方法中,CurrentSessionInfo的内容永远是“AnonymousUserAndSystemSessionisNull”,请问为什么会这样呢?publicclassEventLog{#region私有构造函数,单件模式,防止被实例化///<summary>///私有构造函数,单件模式,防止被实例化///</summary>privateEventLog(){}#endregion#region是否启用日志事件跟踪///<summary>///是否启用日志事件跟踪///</summary>protectedstaticboolEnableEvent{get{returnConfigInfo.WEB_SYSTEM_ENABLEEVENTLOG;}}#endregion#region事件信息体结构///<summary>///事件信息体结构///</summary>privatestructEventBody{#region当前会话信息属性///<summary>///当前会话信息属性///</summary>publicstringCurrentSessionInfo{get{StringBuilderSessionInfo=newStringBuilder();if(HttpContext.Current!=null&&HttpContext.Current.Session!=null){for(inti=0;i<HttpContext.Current.Session.Count;i++){SessionInfo.Append("rntSession[").Append(HttpContext.Current.Session.Keys[i]).Append("]=").Append(TypeParseHelper.StringParse(NetHelper.CurrentContext.Session[i]));}}if(SessionInfo.Length==0){return"AnonymousUserAndSystemSessionisNull!";}else{returnSessionInfo.ToString();}}}#endregion#region远程主机IP地址///<summary>///远程主机IP地址///</summary>publicstringUserHostAddress{get{returnNetHelper.GetIP();}}#endregion#region出错页面地址///<summary>///出错页面地址///</summary>publicstringErrorPage{get{returnRequestHelper.GetUrl();}}#endregion#region页面来源地址///<summary>///页面来源地址///</summary>publicstringReferrerPage{get{returnRequestHelper.GetUrlReferrer();}}#endregion#region相关变量///<summary>///事件等级变量///</summary>publicEventLevelEnumEventLevel;///<summary>///事件源变量///</summary>publicEventSourceEnumEventSource;///<summary>///事件标题变量///</summary>publicstringEventTitle;#endregion}#endregion#region初始化log4net///<summary>///初始化log4net///</summary>publicstaticvoidInitializelog4net(){//log4net.Config.DOMConfigurator.Configure();log4net.Config.XmlConfigurator.Configure();}#endregion#region写事件方法///<summary>///写事件方法///</summary>///<paramname="objEventBody">事件信息体</param>///<paramname="oExp">事件</param>publicstaticvoidWriteEventLog(EventBodyobjEventBody,ExceptionoExp){if(!EnableEvent)return;//事件信息初始化StringBuilderstrEventMessage=newStringBuilder();strEventMessage.Append("<b>内容标题:</b>").Append(objEventBody.EventTitle).Append("rn<br>");strEventMessage.Append("<b>远程主机:</b>").Append(objEventBody.UserHostAddress).Append("rn<br>");strEventMessage.Append("<b>会话信息:</b>").Append(objEventBody.CurrentSessionInfo).Append("rn<br>");log4net.ILoglog=log4net.LogManager.GetLogger("Kinyu");switch((EventLogEntryType)objEventBody.EventLevel){caseEventLogEntryType.Error:log.Error(strEventMessage,oExp);break;caseEventLogEntryType.FailureAudit:log.Error(strEventMessage,oExp);break;caseEventLogEntryType.Information:log.Info(strEventMessage,oExp);break;caseEventLogEntryType.SuccessAudit:log.Info(strEventMessage,oExp);break;default:log.Warn(strEventMessage,oExp);break;}}#endregion}

解决方案

解决方案二:
(HttpContext.Current!=null&&HttpContext.Current.Session!=null这句是否为空了
解决方案三:
HttpContext.Current.Session为空,但是实际上系统还可以正常使用,用户的信息也可以从session里获取的。
解决方案四:
是否静态方法有关呢?

时间: 2024-07-29 12:44:37

写日志出错,请问怎回事?附有代码的相关文章

代码提示出错-请问我这段代码哪里出错了,为什么总是异常,我是个新手

问题描述 请问我这段代码哪里出错了,为什么总是异常,我是个新手 package control; import javax.swing.JFrame public class DebugTest { public static void main(String[] args) { int[] ints= new int[20]; try { for (int i=0; i < 20; i ++) { ints[i] = i+1; Ststem.out.println(i+1); } } catc

c++-RegOpenKeyEx调用失败返回5 ,管理员运行不管用 win7VS2013 请问怎么回事?

问题描述 RegOpenKeyEx调用失败返回5 ,管理员运行不管用 win7VS2013 请问怎么回事? 代码 LONG lRegRet; HLOCAL hLocal; HKEY hKeyUser; PTSTR pszEnvironmentName = NULL; PTSTR pszEnvironmentValue = NULL; pszEnvironmentName = (PTSTR)malloc(MAX_PATH * sizeof(TCHAR)); GetDlgItemText(hDlg,

exception-安卓空指针 异常 请问 怎么回事 小弟刚开始写安卓代码

问题描述 安卓空指针 异常 请问 怎么回事 小弟刚开始写安卓代码 03-30 12:16:38.625: E/AndroidRuntime(19941): FATAL EXCEPTION: main 03-30 12:16:38.625: E/AndroidRuntime(19941): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.voldian/com.voldian.voldian.shangc

tab control insertItem出错,请问怎么回事啊?

问题描述 我这样做的建一个mfc单文档然后在那个"关于"对话框里面加入了一个TabControl然后为它增加一个控件变量然后在OnInitDialog中写m_TAB.InsertItem(0,_T("NewTAB1"));m_TAB.InsertItem(1,_T("NewTAB2"));m_TAB.InsertItem(2,_T("NewTAB3"));m_TAB.InsertItem(3,_T("NewTAB4&

请问怎么写测试webservice连接是否成功的代码

问题描述 请问怎么写测试webservice连接是否成功的代码 解决方案 解决方案二:发个请求,有响应不就是成功了?解决方案三:helloworld方法就可以拿去给别人测试了....解决方案四:只要有时间,就多写一些测试.从任何一方面来进行测试,"想象到"你能通过测试用例来达到系统的什么深度.写测试直到写得你想"吐了",就可以停止了.解决方案五:要知道任何测试都不可能证明系统没有问题,"通过了所有测试用例"这就叫做"没有问题"

mongodb 集群,log文件中没有记录相关的crud操作日志,只有一些获取连接、安全认证的日志,请问是怎么回事

问题描述 mongodb 集群,log文件中没有记录相关的crud操作日志,只有一些获取连接.安全认证的日志,请问是怎么回事 解决方案 是不是要设置log的level?import loggingfrom mongolog.handlers import MongoHandlerlog = logging.getLogger('demo')log.setLevel(logging.DEBUG)log.addHandler(MongoHandler.to(db='mongolog', collec

运行出错-c程序冒泡排序,vc编译没错,但运行不了,不知道怎么回事。代码如下:

问题描述 c程序冒泡排序,vc编译没错,但运行不了,不知道怎么回事.代码如下: #include #define TRUE 1 #define FALSE 0 void bubble(int a[],int length) { int i=1,j,temp; int change; do{ change=FALSE; for(j=0;j if(a[j]>a[j+1]) { temp=a[j+1]; a[j+1]=a[j]; a[j]=temp; change=TRUE; } i+=i; }whi

aop 处理日志出错,注入错误

问题描述 aop 处理日志出错,注入错误 如题所说,我在用 springaop 做日志处理的时候遇到了一个大问题,就是在使用aop的时候能保存日志信息但是当我返回controller的时候注入的service为空 AOP代码 @Aspect @Component public class SaveOrpLog { // 注入操作的日志service进行保存操作 @Resource(name = "sys_OperlogServiceImpl") private ISys_Operlog

python写日志封装类实例

  本文实例讲述了python实现写日志封装类.分享给大家供大家参考.具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 # encoding:utf-8 import sys import logging import time def writeLog(message): logger=logging.getLogger() filename = time.strftime('%Y-%m-%d',time.localtime(time.time())) handler