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键,使 ...
随机推荐
- asp.net core Csc任务不支持SharedCompilationId参数,请确认改参数存在于此任务中,并且是可设置的公共实例属性
创建Asp.net Core2.0版本项目时,成功创建后编译时出现如下问题 解决方法 Nuget上安装Microsoft.Net.Compilers
- 分布式session解决——Spring-data-redis
1.如果没有集成shiro来管理session,可以直接使用spring-session 2.若集成了shiro,需要Spring-data-redis (或 shiro-redis) 3.nginx ...
- ISP PIPLINE (八) RGB2YUV
what is the YUV? 暗电流来源1.YUV 是一种基本色彩空间, 人眼对亮度改变的敏感性远比对色彩变化大很多.亮度分量Y 要比色度分量U.V 重要得多. 所以, 可以适当地抛弃部分U.V分 ...
- python性能:不要使用 key in list 判断key是否在list里
原文:https://docs.quantifiedcode.com/python-anti-patterns/performance/using_key_in_list_to_check_if_ke ...
- 2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest
A. Automatic Door 对于规律的点可以推公式计算,对于噪点则暴力计算,时间复杂度$O(m\log m)$. #include<stdio.h> #include<ios ...
- 【Tomcat】Tomcat配置JVM参数步骤
这里向大家描述一下如何使用Tomcat配置JVM参数,Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个java虚拟机.您可以选择自己的需要选择不同的操作系统和对应的JDK ...
- Linux下的文件切割和文件合并
linux下文件分割可以通过split命令来实现,可以指定按行数分割和按大小分割两种模式.Linux下文件合并可以通过cat命令来实现. 在Linux下用split进行文件分割: ①:指定分割后文件行 ...
- Oracle SQL 内置函数大全(转)
SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数;SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ...
- mysql字符集校对
常用的两种 utf8_general_ci 按照普通的字母顺序,而且不区分大小写(比如:a B c D)utf8_bin 按照二进制排序(比如:A排在a前面,B D a c) ci是 case ins ...
- swust oj 984
利用二叉树中序及先序遍历确定该二叉树的后序序列 1000(ms) 10000(kb) 2754 / 5599 已知二叉树的中序和先序遍历可以唯一确定后序遍历.已知中序和后序遍历可以唯一确定先序遍历,但 ...