简单的日志管理代码

自己写的记录日志,定期删除日志的方法。

方法比较简单,记录一下吧。

/// <summary>
        /// 写日志
        /// </summary>
        /// <param name="strMsg">内容</param>
        /// <param name="strPath">路径(相对hycom下的文件夹路径)</param>
        /// <param name="fileName">日志名(默认yyyy-MM-dd.txt)</param>
        public static void WriteLog(string strMsg,string strPath,string fileName)
        {
            string path = AppDomain.CurrentDomain.BaseDirectory + strPath;
            if(!path.EndsWith("\\")||!path.EndsWith("/"))
            {
                path+="\\";
            }
            if(!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }
            DeleteLog(path);
            if(fileName=="")
            {
                fileName = DateTime.Now.ToString("yyyy-MM-dd")+".txt";
            }
            if(!fileName.EndsWith(".txt"))
            {
                fileName+=".txt";
            }
            try
            {
                //string fileName =DateTime.Now.ToString("yyyy-MM-dd") + ".txt";

                StreamWriter sw = File.AppendText(path+fileName);

                sw.WriteLine("{0}:{1}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff"), strMsg);
                //sw.WriteLine("\n\r");
                sw.Flush();
                sw.Close();
            }
            catch { }
        }
        /// <summary>
        /// 写日志
        /// </summary>
        /// <param name="strMsg">内容</param>
        /// <param name="strPath">路径(相对hycom下的文件夹路径)</param>
        public static void WriteLog(string strMsg,string strPath)
        {
            string fileName = DateTime.Now.ToString("yyyy-MM-dd")+".txt";
            WriteLog(strMsg,strPath,fileName);
        }

        /// <summary>
        /// 定期删除日志
        /// </summary>
        /// <param name="strPath">日志路径</param>
        private static void DeleteLog(string strPath)
        {

            if(Directory.Exists(strPath))
            {
                DirectoryInfo dinfor = new DirectoryInfo(strPath);
                FileInfo[] files = dinfor.GetFiles();
                foreach(FileInfo file in files)
                {
                    try
                    {
                        //删除创建日志日期是3个月前的日志
                        if(DateTime.Compare(file.CreationTime.AddMonths(3),DateTime.Now)<0)
                        {
                            file.Delete();
                        }
                        //删除最后修改日志日期是3个月前的日志
                        if(DateTime.Compare(file.LastWriteTime.AddMonths(3),DateTime.Now)<0)
                        {
                            file.Delete();
                        }
                        //删除日志名称日期是3个月前的日志
                        if(DateTime.Compare(Convert.ToDateTime(file.Name.Substring(0,10)),DateTime.Now.AddMonths(-3))<0)
                        {
                            file.Delete();
                        }
                    }
                    catch(Exception ex)
                    {
                        continue;
                    }
                }
            }
        }

  

时间: 2024-10-20 12:09:36

简单的日志管理代码的相关文章

SpringAOP+注解实现简单的日志管理

今天在再次深入学习SpringAOP之后想着基于注解的AOP实现日志功能,在面试过程中我们也经常会被问到:假如项目已经上线,如何增加一套日志功能?我们会说使用AOP,AOP也符合开闭原则:对代码的修改禁止的,对代码的扩展是允许的.今天经过自己的实践简单的实现了AOP日志. 在这里我只是简单的记录下当前操作的人.做了什么操作.操作结果是正常还是失败.操作时间,实际项目中,如果我们需要记录的更详细,可以记录当前操作人的详细信息,比如说部门.身份证号等信息,这些信息可以直接从session中获取,也可

架构设计 - 日志管理接口设计

在后端代码中,日志无处不在,自己设计自己的一套日志管理代码,提供一套好用的日志接口将大大方便代码的开发. 其中在日志管理代码的编写中,主要有以下难点: 1.数目不确定的入参函数编写 2.日志权限控制 3.日志输出形式. 接口设计: 1.提供三类日志打印形式:1)控制台打印信息,类似printf的接口封装 2)函数追踪接口,打印当前代码的文件名,函数名及行,以及一些设定的输出参数 3)日志打印函数,提供打印级别控制,且打印内容输出到日志文件中 2.提供日志级别控制:1)在打印日志时提供当前日志级别

SQL Server中的事务日志管理(4/9):简单恢复模式里的日志管理

当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会告诉你每个DBA应该知道的具体细节. 这个标题近乎是用词不当,因为很大程度上,运行在简单模式里不需要日志管理.在简单模式里,事务日志的唯一目的是在数据库恢复操作期间,保证事务的ACID属性,还有强制数据库的一致性和事务的持久性.事务日志不能被备份,不能用来数据库恢复,也不能用作日志传输. 在简单模式

Log4j日志管理的简单实例

大型项目中很多情况下要分析程序的日志信息,如何管理自己的日志信息至关重要.在应用程序中添加日志记录总的来说基于三个目的 , 监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作: 跟踪代码运行时轨迹,作为日后审计的依据: 担当集成开发环境中的调试器的作用,向文件或控制台打印代码的调试信息. 最普通的做法就是在代码中嵌入许多的打印语句,这些打印语句可以输出到控制台或文件中,比较好的做法就是构造一个日志操作类 来封装此类操作,而不是让一系列的打印语句充斥了代码的主体. 这篇文章主

LogCook 一个简单实用的Android日志管理工具

众所周知,日志的管理是软件系统很重要的一部分,千万不可忽略其重要性.完整的日志将会在系统维护中起着异常重要的作用,就好像磨刀不误砍柴工一样,日志就像对系统进行分析的工具,工具便捷了,对系统分析起来就能达到事半功倍的效果.开发者必须要明白日志的价值和意义,万万不可忽略和轻视. LogCook是一款非常简洁实用的Android日记管理工具.LogCook的中文翻译是日志厨师,你可以把它看作是一个日志美食家. 特点 作为一款日志管理工具它最大的特点就是简单实用,与Android原生的日志功能相比较它具

Linux下一个简单的日志系统的设计及其C代码实现

1.概述 在大型软件系统中,为了监测软件运行状况及排查软件故障,一般都会要求软件程序在运行的过程中产生日志文件.在日志文件中存放程序流程中的一些重要信息, 包括:变量名称及其值.消息结构定义.函数返回值及其执行情况.脚本执行及调用情况等.通过阅读日志文件,我们能够较快地跟踪程序流程,并发现程序问题. 因此,熟练掌握日志系统的编写方法并快速地阅读日志文件,是对一个软件开发工程师的基本要求. 本文详细地介绍了Linux下一个简单的日志系统的设计方法,并给出了其C代码实现.本文为相关开发项目Linux

Monkey简单操作(三,日志管理)

. monkey日志管理 adb shell monkey –v –v 100 >d:\monkeylog.log保存到本地要保存在手机的话,首先需要进入adb shell然后在运行monkey +目标路径(通常在sdcard下保存)错误流和标准流日志文件分开保存:adb shell monkey –v 100 1>d:\monkey.log 2>d:\error.log1表示标准流,2表示错误流(错误信息) 不管是在项目开发还是测试过程中,项目运行一旦出现问题日志信息就非常重要了.日志

slf4j+logback搭建超实用的日志管理模块

文章转自http://www.2cto.com/kf/201702/536097.html slf4j+logback搭建超实用的日志管理模块(对日志有编号管理):日志功能在服务器端再常见不过了,我们非常有必要记录下发生在服务器上的活动,这些日志将用于debug.统计等各种用途. slf4j+logback这种实现方式是很常见的,好处自然是方便!.在这篇文章中,你将看到如何使用logback搭建你自己的日志组件并将日志输出到文件.如何查看这些文件.如何为每个线程上的访问分配独有的一个日志id.

java程序日志管理

初入软件开发这一行的人,可能对日志管理的概念并不是很明确,大概是由于经验所限,以至于根本还考虑不到这个问题. 而从某种意义上来说,日志管理实际上也不需要初入这一行的人来管,他们只需要负责实现自己的主要业务逻辑和功能就好了. 我当初刚入行的时候就有很长一段时间完全不用去关心日志,到后来偶尔涉及到的时候,也都是从其他地方采用cv大法直接搬用. 不过,随着工作时间的变化,随着手头上任务重要程度的变化,也随着接触到的项目数量的变化,让我越来越意识到日志的重要性,它在整个系统中发挥着至关重要的作用! 尤其