首先引用NLog的dll文件

using System.IO;

using NLog;

-------------------------------------------------------------------------------------------------------------------------------

基础日志类

/// <summary>
/// 写日志
/// </summary>
public class WriteLog
{
private static Logger logger = LogManager.GetCurrentClassLogger();
private static string filebasepath = AppDomain.CurrentDomain.BaseDirectory + "Logs\\";

/// <summary>
/// 写日志
/// </summary>
/// <param name="log">日志内容</param>
public void WriteComLog(string log)
{
//记录警告信息
logger.Warn(log);
}

/// <summary>
/// 根据名称分类写日志
/// </summary>
/// <param name="log">日志内容</param>
/// <param name="logname">日志类别名称</param>
public void WriteComLog(string log, string logname)
{
Logger loggerByName = LogManager.GetLogger(logname);
//记录一般信息
loggerByName.Info(log);
}

/// <summary>
/// 将信息写入文件
/// </summary>
/// <param name="info">信息</param>
/// <param name="filename">文件名</param>
/// <param name="filefix">文件后缀名</param>
public void WriteFile(string info, string filename, string filefix)
{
try
{
//文件夹路径
string _filebasepath = GetTodyRecordPath();
string filePath = string.Empty;

if (string.IsNullOrEmpty(filefix))
{
//日志文件路径
filePath = _filebasepath + "\\" + filename + ".log";
}
else
{
filePath = _filebasepath + "\\" + filename + filefix;
}
//如果file文件夹不存在创建file文件夹
if (!System.IO.Directory.Exists(_filebasepath))
{
Directory.CreateDirectory(_filebasepath);
}
//如果文件不存在创建该文件
if (!File.Exists(filePath))
{
File.Create(filePath).Close();
}
StreamWriter sw = File.AppendText(filePath);
sw.Write(info);
sw.Close();
}
catch
{

}
}

/// <summary>
/// 将信息写入文件
/// </summary>
/// <param name="info">信息</param>
/// <param name="filename">文件名</param>
/// <param name="filefix">文件后缀名</param>
/// <param name="childpath"></param>
public void WriteFile(string info, string filename, string filefix,string childpath)
{
try
{
string _filebasepath = GetTodyRecordPath()+childpath;
string filePath = string.Empty;

if (string.IsNullOrEmpty(filefix))
{
filePath = _filebasepath + "\\" + filename + ".log";
}
else
{
filePath = _filebasepath + "\\" + filename + filefix;
}

if (!System.IO.Directory.Exists(_filebasepath))
{
Directory.CreateDirectory(_filebasepath);
}
//如果文件不存在创建该文件
if (!File.Exists(filePath))
{
File.Create(filePath).Close();
}
//将日志文件追加到日志文件夹下
StreamWriter sw = File.AppendText(filePath);
//将日志的内容写入日志文件中
sw.Write(info);
sw.Close();
}
catch
{

}
}

/// <summary>
/// 获取当前日期文件夹
/// </summary>
/// <returns>createPath文件夹路径</returns>
private string GetTodyRecordPath()
{
string createPath = string.Empty;
//如果不存在就创建file文件夹
if (Directory.Exists(filebasepath + DateTime.Now.Year.ToString()) == false)
{
//创建文件夹
Directory.CreateDirectory(filebasepath + DateTime.Now.Year.ToString());
//获取文件夹路径
createPath = DateTime.Now.Year.ToString() + @"\";
}

if (Directory.Exists(filebasepath + DateTime.Now.Year.ToString()+"/"+DateTime.Now.Month.ToString()) == false)
{
Directory.CreateDirectory(filebasepath + DateTime.Now.Year.ToString() + "/" + DateTime.Now.Month.ToString());
createPath = DateTime.Now.Year.ToString() + @"\"+DateTime.Now.Month.ToString()+@"\";
}

if (Directory.Exists(filebasepath + DateTime.Now.Year.ToString() + "/" + DateTime.Now.Month.ToString()+"/"+DateTime.Now.ToString("yyyyMMdd")) == false)
{
Directory.CreateDirectory(filebasepath + DateTime.Now.Year.ToString() + "/" + DateTime.Now.Month.ToString() + "/" +DateTime.Now.ToString("dd"));
createPath = DateTime.Now.Year.ToString() + @"\"+DateTime.Now.Month.ToString()+@"\"+DateTime.Now.ToString("dd")+"/";
}
createPath = filebasepath + DateTime.Now.Year.ToString() + @"\" + DateTime.Now.Month.ToString() + @"\" + DateTime.Now.ToString("dd") + @"\";
return createPath;
}

}

-----------------------------------------------------------------------------------------------------------------------------------

新写一个类来调用基础日志类(通过调用WriteLogs方法生成操作日志)

public void WriteLogs(string userName,string chineseName,string Information)
{
//定义调用common中WriteLog类的WriteFile方法的变量
string logstr = string.Empty;
string filefix=string.Empty;
string filename=string.Empty;
//日志文件的名称
//filename="测试";
filename = DateTime.Now.ToString("yyyy-MM-dd");
//日志文件后缀名
filefix=".txt";
//日志文件的内容
logstr = string.Format("[{0}]\t{1}\t{2}\t{3}\r\n", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), userName ,chineseName,Information);

//调用WriteFile方法
if (logstr != null)
{
YnTravelSky.AOFIS.Common.WriteLog dt = new Common.WriteLog();
dt.WriteFile(logstr, filename, filefix);
}

}

C#操作日志的更多相关文章

  1. Appfuse:记录操作日志

    appfuse的数据维护操作都发生在***form页面,与之对应的是***FormController,在Controller中处理数据的操作是onSubmit方法,既然所有的操作都通过onSubmi ...

  2. 【开源】OSharp3.0框架解说系列(6.2):操作日志与数据日志

    OSharp是什么? OSharp是个快速开发框架,但不是一个大而全的包罗万象的框架,严格的说,OSharp中什么都没有实现.与其他大而全的框架最大的不同点,就是OSharp只做抽象封装,不做实现.依 ...

  3. SSH基于Hibernate eventListener 事件侦听器的操作日志自动保存到数据库

    在spring xml配置文件中添加配置,包含:model.listener 在model中增加需要写入数据库对应表的model 在auditLog.xml配置文件中配置自己项目中,需要进行日志记录的 ...

  4. springmvc+log4j操作日志记录,详细配置

    没有接触过的,先了解一下:log4j教程 部分内容来:log4j教程 感谢! 需要导入包: log包:log4j-12.17.jar 第一步:web.xml配置 <!-- log4j配置,文件路 ...

  5. osharp3 操作日志之数据日志 控制增强

    osharp3 原来的数据日志,有配置文件中有这总开关,DataLoggingEnabled,原来的程序是,这个总开关关了,就无法记录数据日志了,,如果开了,,他不管记录不记录数据日志,系统都会存数据 ...

  6. 在Linux下记录所有用户的登录和操作日志

    一般我们可以用history命令来查看用户的操作记录,但是这个命令不能记录是哪个用户登录操作的,也不能记录详细的操作时间,且不完整:所以误操作而造成重要的数据丢失,就很难查到是谁操作的. 在这里我们通 ...

  7. linux查看ssh用户登录日志与操作日志

    linux查看ssh用户登录日志与操作日志 2013-11-01转载   ssh用户登录日志 linux下登录日志在下面的目录里:  代码如下 复制代码 cd /var/log 查看ssh用户的登录日 ...

  8. 16.Linux配置环境变量和日志history和Terminal颜色和用户(IP)操作日志记录

    $ vim /etc/profile #####################环境变量################################# export TZ='Asia/Shangh ...

  9. MVC 记录操作日志与过滤特殊字符

    最近进行的MVC系统需要用到记录操作日志和过滤特殊字符的功能,如果每个action中都调用记录日志的方法就太麻烦了,所以根据需要结合mvc的过滤机制 写了个特殊字符验证与记录操作日志的公用类: pub ...

随机推荐

  1. ActiveMQ入门实例Demo

    前面我们已经搭建和配置好了ActiveMQ,下面来看一个Demo,体验一下MQ. JMS 消息模型 JMS消息服务应用程序结构支持两种模型:点对点模型,发布者/订阅者模型. (1)点对点模型(Queu ...

  2. 关于FloatingActionButton

    由于FloatingActionButton本质上是ImageView,跟ImageView相关的就不介绍,这里重点介绍新加的几个属性. app:fabSize:FloatingActionButto ...

  3. 修改/etc/profile和/etc/environment导致图形界面无法登陆的问题

    在使用ubuntu开发时,往往要修改PATH变量,有时会通过修改/etc/profile和/etc/environment来修改默认的PATH变量,但是一旦出错,很容易造成无法登陆进入图形界面的问题. ...

  4. Knockout.js 组件

    Knockout.js是一个基于MVVM模式的轻量级的前端框架,有多轻?根据官网上面显示的最新版本v3.4.0,仅22kb.能够友好地处理数据模型和界面DOM的绑定,最重要的是,它的绑定是双向的,也就 ...

  5. 将字符串中的URL 解析,获取内容

    parse_str() : parse_str("name=Bill&age=60"); echo $name."<br>";//Bill ...

  6. POJ 2387 Til the Cows Come Home(最短路 Dijkstra/spfa)

    传送门 Til the Cows Come Home Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 46727   Acce ...

  7. note

    John的博客 http://blog.sina.com.cn/chinatownjohn 剑4-11真题+新东方pdf,王陆语料库(听力)+顾家北手把手教你写剑9版(写作)+人人雅思哥记忆卡(口语) ...

  8. widows和Linux java加密注意事项

    /** * @Title: EncrypAES.java * @Package com.weidinghuo.payment.util * @Description: TODO(用一句话描述该文件做什 ...

  9. Linux学习之CentOS(二十一)--Linux系统启动详解

      在这篇随笔里面将对Linux系统的启动进行一个详细的解释!我的实验机器是CentOS6.4,当然对于现有的Linux发行版本,其系统的启动基本上都是一样的! 首先我们来看下Linux系统启动的几个 ...

  10. C# 获取磁盘剩余空间

    drive.TotalFreeSpace单位为bit,根据需要除以1024 drive同时可以可以获取磁盘分区容量等 //单位MB public static long GetHardDiskSpac ...