C#操作日志
首先引用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#操作日志的更多相关文章
- Appfuse:记录操作日志
appfuse的数据维护操作都发生在***form页面,与之对应的是***FormController,在Controller中处理数据的操作是onSubmit方法,既然所有的操作都通过onSubmi ...
- 【开源】OSharp3.0框架解说系列(6.2):操作日志与数据日志
OSharp是什么? OSharp是个快速开发框架,但不是一个大而全的包罗万象的框架,严格的说,OSharp中什么都没有实现.与其他大而全的框架最大的不同点,就是OSharp只做抽象封装,不做实现.依 ...
- SSH基于Hibernate eventListener 事件侦听器的操作日志自动保存到数据库
在spring xml配置文件中添加配置,包含:model.listener 在model中增加需要写入数据库对应表的model 在auditLog.xml配置文件中配置自己项目中,需要进行日志记录的 ...
- springmvc+log4j操作日志记录,详细配置
没有接触过的,先了解一下:log4j教程 部分内容来:log4j教程 感谢! 需要导入包: log包:log4j-12.17.jar 第一步:web.xml配置 <!-- log4j配置,文件路 ...
- osharp3 操作日志之数据日志 控制增强
osharp3 原来的数据日志,有配置文件中有这总开关,DataLoggingEnabled,原来的程序是,这个总开关关了,就无法记录数据日志了,,如果开了,,他不管记录不记录数据日志,系统都会存数据 ...
- 在Linux下记录所有用户的登录和操作日志
一般我们可以用history命令来查看用户的操作记录,但是这个命令不能记录是哪个用户登录操作的,也不能记录详细的操作时间,且不完整:所以误操作而造成重要的数据丢失,就很难查到是谁操作的. 在这里我们通 ...
- linux查看ssh用户登录日志与操作日志
linux查看ssh用户登录日志与操作日志 2013-11-01转载 ssh用户登录日志 linux下登录日志在下面的目录里: 代码如下 复制代码 cd /var/log 查看ssh用户的登录日 ...
- 16.Linux配置环境变量和日志history和Terminal颜色和用户(IP)操作日志记录
$ vim /etc/profile #####################环境变量################################# export TZ='Asia/Shangh ...
- MVC 记录操作日志与过滤特殊字符
最近进行的MVC系统需要用到记录操作日志和过滤特殊字符的功能,如果每个action中都调用记录日志的方法就太麻烦了,所以根据需要结合mvc的过滤机制 写了个特殊字符验证与记录操作日志的公用类: pub ...
随机推荐
- [原]CentOS7部署osm2pgsql
转载请注明原作者(think8848)和出处(http://think8848.cnblogs.com) 部署Postgresql和部署PostGis请参考前两篇文章 本文主要参考GitHub上osm ...
- [LeetCode] Best Time to Buy and Sell Stock with Cooldown 买股票的最佳时间含冷冻期
Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...
- [LeetCode] Gray Code 格雷码
The gray code is a binary numeral system where two successive values differ in only one bit. Given a ...
- IntelliJ idea创建Spring MVC的Maven项目
参考:http://my.oschina.net/gaussik/blog/385697?fromerr=Pie9IlFV 创建Maven Web项目 菜单File->New Project可进 ...
- Java序列化与反序列化
Java序列化与反序列化是什么?为什么需要序列化与反序列化?如何实现Java序列化与反序列化?本文围绕这些问题进行了探讨. 1.Java序列化与反序列化 Java序列化是指把Java对象转换为字节序列 ...
- C#中的WebBrowser控件的使用
0.常用方法 Navigate(string urlString):浏览urlString表示的网址 Navigate(System.Uri url):浏览url表示的网址 Navigate(st ...
- 修改hosts文件在本地使域名解析到指定IP
# Additionally, comments (such as these) may be inserted on individual # lines or following the mac ...
- 常用的一些linux命令
最近接触到一些linux环境部署的事情,下面分享一些最近使用的比较频繁的一些linux命令~ 1.一次性移动多个文件到一个文件夹里 mv 被移动文件名 -t 目标文件夹 如:mv a.txt b.t ...
- MySQL隐式转化整理
MySQL隐式转化整理 前几天在微博上看到一篇文章:价值百万的 MySQL 的隐式类型转换感觉写的很不错,再加上自己之前也对MySQL的隐式转化这边并不是很清楚,所以就顺势整理了一下.希望对大家有所帮 ...
- Beta阶段第六次Scrum Meeting
情况简述 BETA阶段第六次Scrum Meeting 敏捷开发起始时间 2016/12/16 00:00 敏捷开发终止时间 2016/12/17 00:00 会议基本内容摘要 平稳推进 参与讨论人员 ...