LogHelper
public class LogHelper
{ static string strLogCOMPath = Directory.GetCurrentDirectory() + "\\Log\\" + DateTime.Now.ToString("yyyyMMdd") + "LogJH.txt";
static string strLogErrorPath = Directory.GetCurrentDirectory() + "\\Log\\" + DateTime.Now.ToString("yyyyMMdd") + "ErrorLog.txt";
/// <summary>
/// 记录交互日志
/// </summary>
/// <param name="strLogContent">要记录的内容</param>
/// <param name="bWriteFirstLine">是否要添加第一行日志title</param>
/// <param name="strConentTitle">title内容</param>
public static void AddCOMLog(string strLogContent, bool bWriteFirstLine, string strConentTitle)
{
string time1;
time1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
if (!File.Exists(strLogCOMPath))
{
using (FileStream fs = new FileStream(strLogCOMPath, FileMode.Create, FileAccess.Write))
{
if (bWriteFirstLine)
{
StringBuilder sb1 = new StringBuilder();
sb1.Append("时间").Append(",").Append(strConentTitle).Append(",").Append("\n");
string str = sb1.ToString();
byte[] buffer = Encoding.Default.GetBytes(str);
fs.Write(buffer, , buffer.Length);
}
}
}
using (StreamWriter sw = new StreamWriter(strLogCOMPath, true, Encoding.Default))
{
StringBuilder sb = new StringBuilder();
sb.Append(time1).Append(",").Append(strLogContent).Append(",");
sw.WriteLine(sb);
}
}
/// <summary>
/// 记录错误日志
/// </summary>
/// <param name="strLogContent">要记录的内容</param>
/// <param name="bWriteFirstLine">是否要添加第一行日志title</param>
/// <param name="strConentTitle">title内容</param>
public static void AddErrorLog(string strLogContent, bool bWriteFirstLine, string strConentTitle)
{
string time1;
time1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");
if (!File.Exists(strLogErrorPath))
{
using (FileStream fs = new FileStream(strLogErrorPath, FileMode.Create, FileAccess.Write))
{
if (bWriteFirstLine)
{
StringBuilder sb1 = new StringBuilder();
sb1.Append("时间").Append(",").Append(strConentTitle).Append(",").Append("\n");
string str = sb1.ToString();
byte[] buffer = Encoding.Default.GetBytes(str);
fs.Write(buffer, , buffer.Length);
}
}
}
using (StreamWriter sw = new StreamWriter(strLogErrorPath, true, Encoding.Default))
{
StringBuilder sb = new StringBuilder();
sb.Append(time1).Append(",").Append(strLogContent).Append(",");
sw.WriteLine(sb);
}
} static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");
static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");
static string isAddLog = System.Configuration.ConfigurationSettings.AppSettings.Get("isAddLog");
/// <summary>
/// 仅向日志中增加信息
/// </summary>
/// <param name="info"></param>
public static void WriteLog(string info)
{
if (isAddLog == "")
return;
if (loginfo.IsInfoEnabled)
{
loginfo.Info(info);
} }
/// <summary>
/// 记录错误日志
/// </summary>
/// <param name="ex">错误异常</param>
/// <param name="info">异常信息</param>
public static void WriteLog(Exception ex, string info)
{
if (logerror.IsErrorEnabled)
{
logerror.Error(info, ex);
}
}
}
LogHelper
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<log4net>
<!--错误日志类-->
<logger name="logerror">
<!--日志类的名字-->
<level value="ALL" />
<!--定义记录的日志级别-->
<appender-ref ref="ErrorAppender" />
<!--记录到哪个介质中去-->
</logger>
<!--信息日志类-->
<logger name="loginfo">
<level value="ALL" />
<appender-ref ref="InfoAppender" />
</logger>
<!--错误日志附加介质-->
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
<!-- name属性指定其名称,type则是log4net.Appender命名空间的一个类的名称,意思是,指定使用哪种介质-->
<param name="File" value="Log\\LogError\\" />
<!--日志输出到exe程序这个相对目录下-->
<param name="AppendToFile" value="true" />
<!--输出的日志不会覆盖以前的信息-->
<param name="MaxSizeRollBackups" value="" />
<!--备份文件的个数-->
<param name="MaxFileSize" value="" />
<!--当个日志文件的最大大小-->
<param name="StaticLogFileName" value="false" />
<!--是否使用静态文件名-->
<param name="DatePattern" value="yyyyMMdd".html"" />
<!--日志文件名-->
<param name="RollingStyle" value="Date" />
<!--文件创建的方式,这里是以Date方式创建-->
<!--错误日志布局-->
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="<HR COLOR=red>%n异常时间:%d [%t] <BR>%n异常级别:%-5p <BR>%n异 常 类:%c [%x] <BR>%n%m <BR>%n <HR Size=1>" />
</layout>
</appender>
<!--信息日志附加介质-->
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log\\LogInfo\\" />
<param name="AppendToFile" value="true" />
<param name="MaxFileSize" value="" />
<param name="MaxSizeRollBackups" value="" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyyMMdd".html"" />
<param name="RollingStyle" value="Date" />
<!--信息日志布局-->
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="<HR COLOR=blue>%n日志时间:%d [%t] <BR>%n日志级别:%-5p <BR>%n日 志 类:%c [%x] <BR>%n%m <BR>%n <HR Size=1>" />
</layout>
</appender>
</log4net>
</configuration>
log4net.config
引用添加Log4net.DLL。
捕捉异常后,调用WriteLog方法,记录日志。
try
{
代码块
}
catch (Exception ex)
{
LogHelper.WriteLog(ex, ex.Message.ToString());
}
实例
使用日志时,注意2点
1.目标框架不能使用Client Profile,否则无法找到Log4net.DLL。
2.在LogHelper的Project中Assembly程序集需要添加以下代码,否则无法写日志。
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]//让程序启动时是找到Log4net.config配置文件
LogHelper的更多相关文章
- loghelper.cs 代码
唉,网上到处找一圈,真是麻烦,自己结合别人写的,重新整理一个. 这个破玩意最大的作用就是写微信那种没法顺利断点调试的程序的时候,在需要的地方写日志,然后去查看.真是回到当年用DW4写php的年代了,可 ...
- LogHelper拾遗
1.被简化之前 对已LogHelper,形如: public static void WriteError(string className,string methodName,string mess ...
- 日志记录类LogHelper
开源日志log4net使用起来很方便,但是项目中不让用,所以自己重写了一个类,用来记录日志,比较简单. 1.首先是可以把日志分成多个类型,分别记录到不同的文件中 /// <summary> ...
- C# LogHelper
using System; using log4net; using log4net.Config; namespace Utils { /// <summary> /// 日志帮助类(l ...
- LogHelper 日志记录帮助类
1.LogHelper 日志记录帮助类 using System; using System.Collections.Generic; using System.Linq; using System. ...
- LogHelper 日志
public class LogHelper : Abp.Domain.Services.DomainService { public static void Debug(object message ...
- C# 日志记录工具类--LogHelper.cs测试
C# 日志记录工具类:(适用于不想使用log4j等第三方的Log工具的时候,希望自己写个简单类实现)LogHelper.cs内容如下: using System; using System.Diagn ...
- 简单日志LogHelper
public static class LogHelper { //日志存储路径 private static string LogPath = Path.Combine(AppDomain.Curr ...
- C# 简单日志帮助类LogHelper
调用: LogHelper.Debug(""); LogHelper.Info(""); LogHelper.Error(""); 项目添加 ...
随机推荐
- 在Linux中使用minikube
Minikebe Minikube是一个轻量级Kubernetes实现,它在本地机器上创建一个VM,并部署一个只包含一个节点的简单集群. Minikube使用Docker机器来管理Kubernetes ...
- eclipse下写html
3.创建静态web工程 打开eclipse,选择file,new project 或者 new other...,选择web项中的static web project ,next. 输入你的项目名,如 ...
- 用fiddler来学http协议:为什么会有“response body is encoded click to decode”
使用fiddler查看服务器返回的响应包的时候,我们常常会看到“response body is encoded click to decode”这样一个提示,只有点击它才能让响应包的主体内容从乱码变 ...
- java将base64解析图片保存到本地。
将base64解析图片保存到本地的两个方法 /** * base64转图片 * @param base64str base64码 * @param savePath 图片路径 * @return */ ...
- mysql——修改表名、修改字段名、修改字段数据类型、增加字段、删除字段、修改字段排列位置、修改存储引擎、删除表 (示例)
一.创建表和插入数据: ), mz ), bz ) ); ,'sww','sww01'); ,'aww','aww02'); ,'qww','qww03'), (,'eww','eww04'), (, ...
- mac 上iterm终端连接Linux服务后 中文为乱码问题
https://www.jianshu.com/p/8b00f71b2177 编辑 ssh 配置vim /etc/ssh/ssh_config修改如下:Host *#SendEnv LANG LC_* ...
- vim配置及插件安装笔记
1. 首先打开vim的配置文件vimrc,并加入以下常用的配置: cd ~ mkdir .vim vim .vimrc " 设置当文件被改动时自动载入 set autoread " ...
- [转帖]CENTOS6.6下mysql5.7.11带boost和不带boost的源码安装
CENTOS6.6下mysql5.7.11带boost和不带boost的源码安装 本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuir ...
- Docker部署前后端项目
本地(ubuntu19.04)安装docker: sudo apt install docker.io SSH连接服务器: 安装Docker: yum update yum -y install do ...
- win10 远程桌面ubuntu16
一. 软件安装 1.1. 打开终端,安装xrdp,vncserver sudo apt-get install xrdp vnc4server xbase-clients 1.2. desktop s ...