C#保存日志文件到txt中,可追加保存,定时删除最后一次操作半年前日志文件
/// <summary>
/// 输出指定信息到文本文件
/// </summary>
/// <param name="msg">输出信息</param>
public void WriteMessage(string msg, string userName)
{
try
{ string mainPath = "F:\\log\\";//日志文件路径&配置到Config文件中直接获取
string path = mainPath;
string filename = DateTime.Now.ToString("yyyyMMdd") + ".txt";//文件名
string year = DateTime.Now.ToString("yyyy");//年
string month = DateTime.Now.ToString("MM");//月 //判断log文件路径是否存在,不存在则创建文件夹
if (!System.IO.Directory.Exists(path))
{
System.IO.Directory.CreateDirectory(path);//不存在就创建目录
} path += year + "\\";
//判断年度文件夹是否存在,不存在则创建文件夹
if (!System.IO.Directory.Exists(path))
{
System.IO.Directory.CreateDirectory(path);//不存在就创建目录
} path += month + "\\";
//判断月度文件夹是否存在,不存在则创建文件夹
if (!System.IO.Directory.Exists(path))
{
System.IO.Directory.CreateDirectory(path);//不存在就创建目录
} //拼接完整文件路径
path += filename;
if (!File.Exists(path))
{
//文件不存在,新建文件
FileStream fs = new FileStream(path, FileMode.OpenOrCreate);
StreamWriter sw = new StreamWriter(fs);
sw.Close();
} using (FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write))
{
using (StreamWriter sw = new StreamWriter(fs))
{
sw.BaseStream.Seek(, SeekOrigin.End);
//sw.WriteLine("------------------------------------------------------------------------ Info Start ");
sw.WriteLine("操作时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
sw.WriteLine("操作人:" + userName);
sw.WriteLine("Message:{0}\n", msg, DateTime.Now);
sw.WriteLine("------------------------------------------------------------------------ ");
Console.WriteLine("\n");
sw.Flush();
}
} //当前月份
int totalmonth = int.Parse(month);
int totalyear = int.Parse(year);
int tmonth = ;//保留日志时长,月度单位
DateTime date;
string datestring = ""; DirectoryInfo dyInfo = new DirectoryInfo(mainPath);
//删除历史数据,保留6个月日志
if (totalmonth < tmonth)
{
//删除前一年totalmonth+6月份之前的数据
datestring = (totalyear - ).ToString() + "-" + (totalmonth + tmonth).ToString().PadLeft(, '') + "-" + "01 00:00:00"; }
else
{
//删除当年6个月前的数据
datestring = (totalyear).ToString() + "-" + (totalmonth - tmonth).ToString().PadLeft(, '') + "-" + "01 00:00:00";
}
date = Convert.ToDateTime(datestring);
//获取文件夹下所有的文件
foreach (FileInfo feInfo in dyInfo.GetFiles())
{
//判断文件日期是否小于今天,是则删除
if (feInfo.CreationTime < date)
feInfo.Delete();
}
}
catch (Exception)
{
}
}
C#保存日志文件到txt中,可追加保存,定时删除最后一次操作半年前日志文件的更多相关文章
- 3.键盘输入10个数,放到数组中,(1)去除该数组中大于10的数 (2)将该数组中的数字写入到本地文件number.txt中
package cn.it.text; import java.io.FileWriter; import java.io.IOException; import java.util.Scanner; ...
- Linux,以逗号为分隔符,打印文件file.txt中的第一个和第三个字符
https://zhidao.baidu.com/question/1883257355267391828.html
- 解析.xml并保存结点信息至.txt中
@ 思路 利用java开源库dom4j解析.xml: dom4j操作xml - 读取xml,生成一个document实例: SAXReader reader = new SAXReader(); Do ...
- Linux中移动,复制,删除,打包排除某个目录或文件
移动,复制,删除排除某个文件或目录 cp !(file1|dir2) /data/ 复制文件到/data/,排除file1和dir2 mv !(file1|dir2) /data/ 移动文件到/dat ...
- Django 1.6 最佳实践: 如何设置django项目的设置(settings.py)和部署文件(requirements.txt)
Django 1.6 最佳实践: 如何设置django项目的设置(settings.py)和部署文件(requirements.txt) 作者: Desmond Chen,发布日期: 2014-05- ...
- MATLAB中将mat文件转为txt格式文件
直接保存为txt文件: 可以用fprintf函数,来代替save函数 比如现在我有一个变量a=[0.1223 345.4544] 如果我想保存它的话,可以用下面的程序: fid = fopen(' ...
- logstash收集的日志输出到elasticsearch中
logstash收集的日志输出到elasticsearch中 一.需求 二.实现步骤 1.编写pipeline文件 1.`elasticsearch`配置参数解析: 2.可能会报的一个异常 2.准备测 ...
- Java学习-043-获取文件在目录中的路径
我们在日常的电脑使用中,经常需要在当前目录或当期目录及其子目录中查找文件,并获取相应的文件路径名.在我们的自动化测试中,也经常需要确认文件在目录中是否成功生成或已存在,因而我写了一个小方法来实现. 获 ...
- 使用VIM将文件的其中的连续几行注释删除或者给其中的连续几行添加注释
一.使用VIM将文件的其中的连续几行注释删除 1.用VIM打开一个文件,比如打开sshd_config文件,以该文件的下面几行为例: #vim sshd_config 2.此时,按ctrl+v键,使 ...
随机推荐
- java代码获取多边形的中心点
package com.skjd.util; import java.util.ArrayList; import java.util.List; /** * 坐标以及电子围栏相关的工具类 * @au ...
- 转:mongoDB 修改 ulimit
转自:http://blog.yucanlin.cn/2015/03/23/mongodb-%E4%BF%AE%E6%94%B9-ulimit/ mongoDB 修改 ulimit 一切都源于mong ...
- POJ 1515 Street Directions (边双连通)
<题目链接> 题目大意: 有m条无向边,现在把一些边改成有向边,使得所有的点还可以互相到达.输出改变后的图的所有边(无向边当成双向的有向边输出). 解题分析: 因为修改边后,所有点仍然需要 ...
- Problem J. Journey with Pigs
Problem J. Journey with Pigshttp://codeforces.com/gym/241680/problem/J考察排序不等式算出来单位重量在每个村庄的收益,然后生序排列猪 ...
- Selenium获取当前窗口句柄与切换回原窗口句柄
Selenium通过window_handles获取当前窗口句柄,进行页面元素操作 切换回原窗口句柄,进行元素操作 代码如下:(python版) __author__ = 'liuke' import ...
- 2019-2-25SqlServer 中所有表、列、视图、索引、主键、外键等常用sql
sp_help Accounts_Users 其中Accounts_Users 表示表名 sp_columns Accounts_Users exec sp_helpconstraint ...
- centos6.5安装nginx+python+uwsgi+django
nginx+uwsgi+django环境部署及测试 默认系统自带的python2.6.6 第一步(安装setuptools) wget https://pypi.python.org/packages ...
- MFC版链表实现稀疏多项式相加减
链表实现多项式运算(加减)MFC可视化版 题目 设计一个一元稀疏多项式简单计算器. 基本要求 (1)输入并建立两个多项式: (2)多项式a与b相加,建立和多项式c: (3)多项式a与b相减,建立差多项 ...
- [LeetCode] Generate Random Point in a Circle 生成圆中的随机点
Given the radius and x-y positions of the center of a circle, write a function randPoint which gener ...
- css 图片置灰
.filterGray{ -webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -ms-filter: grayscale(10 ...