首页 > 其他分享 >日志

日志

时间:2024-06-06 15:13:21浏览次数:8  
标签:ld IO stream System File path 日志

系统都需要做日志功能,包括系统异常报错、非法访问等等都想要进行记录和统计,这样的数据数量会很多却又跟具体的业务没有太大关系,所以一般情况下可能会选择以txt

 public static void WriteLog(string logstring)
 {
     try
     {
         string path = AppDomain.CurrentDomain.BaseDirectory + "/LOG";
         if (!Directory.Exists(path))
             Directory.CreateDirectory(path);

         path = path + "/log.txt";

         //判断文件是否存在,没有则创建。
         if (!System.IO.File.Exists(path))
         {
             FileStream stream = System.IO.File.Create(path);
             stream.Close();
             stream.Dispose();
         }

         //写入日志
         using (StreamWriter writer = new StreamWriter(path, true))
         {
             writer.WriteLine(DateTime.Now + "  " + logstring);
         }

         long size = 0;
         int isdelete = 0;
         string delName = "";
         List<LogFileInfo> ld = new List<LogFileInfo>();

         //获取文件大小
         using (FileStream file = System.IO.File.OpenRead(path))
         {

             size = file.Length;//文件大小。byte

             //判断日志文件大于20M,换一个新的文件,自动保存5个历史的。
             if (size > (1024 * 1024 * 20)) //(1024 * 1024 * 10)
             {
                 //最多保存5个日志文件,分别是log1.txt log2.txt .....
                 for (int i = 1; i < 5; i++)
                 {
                     string newpath = AppDomain.CurrentDomain.BaseDirectory + "/Log/log" + i + ".txt";
                     //判断文件是否存在,没有则创建。
                     if (!System.IO.File.Exists(newpath))
                     {
                         System.IO.File.Copy(path, newpath, true);
                         isdelete = 1;
                         delName = path;
                         break;
                     }
                     else
                     {
                         FileInfo fi = new FileInfo(newpath);
                         ld.Add(new LogFileInfo() { filepath = newpath, createdate = DateTime.Parse(fi.LastWriteTime.ToString()) });
                         if (i == 4)
                         {
                             ld.Sort((a, b) => a.createdate.CompareTo(b.createdate));
                             if (System.IO.File.Exists(ld[0].filepath))
                             {
                                 System.IO.File.Delete(ld[0].filepath);
                                 FileStream stream = System.IO.File.Create(ld[0].filepath);
                                 stream.Close();
                                 stream.Dispose();
                             }
                             System.IO.File.Copy(path, ld[0].filepath, true);
                             isdelete = 1;
                             delName = path;
                         }
                     }
                 }
             }
         }

         if (isdelete == 1)
         {
             System.IO.File.Delete(path);
         }
     }
     catch (Exception ex)
     {

     }
 }

 

标签:ld,IO,stream,System,File,path,日志
From: https://www.cnblogs.com/zj19940610/p/18235166

相关文章

  • 003基于SSM+Jsp+Mysql的美好生活日志网
    开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9系统展示前台首页用户注册用户登录日记信息管理员登录用户管理日记信息管理美食信息管理景点信息管......
  • yolov5训练日志
      (wind_2021)J:\PytorchProject\yolov5_train_car_2024060501>(wind_2021)J:\PytorchProject\yolov5_train_car_2024060501>pythontrain_20230320.py--img-size640--batch-size2--epochs300--data./data/myvoc.yaml--cfg./models/yolov5m.yaml--......
  • Java中的错误处理和日志记录:提升应用的健壮性和可维护性
            在Java开发中,有效的错误处理和日志记录是确保应用健壮性和可维护性的关键。通过恰当的异常处理和详尽的日志信息,开发者可以迅速定位和解决问题,同时提供程序运行的透明度。本文将探讨Java中的错误处理最佳实践和日志记录技术,包括常用的日志框架和配置方法。###......
  • kubernetes 集群开启审计日志
    原文链接:https://maoqide.live/posts/cloud/kubernetes-auditKubernetes审计关于Kubernetes审计的详细信息,可以查看官方文档:https://kubernetes.io/zh-cn/docs/tasks/debug-application-cluster/audit/简单来说,kube-apiserver能够记录所有请求到集群的请求和响应。根据你配......
  • 跟着杨中科学习(二)日志
    日志系统日志级别Trace<Debug<Information<Warning<Error<Critical输出到控制台NugetMicrosoft.Extensions.LoggingMicrosoft.Extensions.Logging.ConsoleDI注入services.AddLogging(logBuilder=>{ logBuilder.AddConsole();//可多个ProciderlogBuilder.SetMini......
  • 日志工具类之“根据标记的注解进行指定的字段日志记录-在展示方式上会美观一些”
    一、使用方法在添加、编辑等操作功能时可以使用该方案,在需要记录日志的实体类字段中进行注解标注。并标明对应的字段名二、代码1.使用LoggerUtils工具类生成日志publicJsonResultsavePrice(Priceprice){if(price.getId()!=null){String......
  • java框架-日志-体系与级别-技巧
     体系一是提供了统一的日志门面API,即图中紫色部分,实现了中立的日志记录API。二是桥接功能,即图中蓝色部分,用来把各种日志框架的API(图中绿色部分)桥接到SLF4JAPI。这样一来,即便你的程序中使用了各种日志API记录日志,最终都可以桥接到SLF4J门面API。三是适配功能,即图......
  • golang 使用 zap logger 加入Lumberjack 写日志
    golang使用zaplogger加入Lumberjack写日志Cd进入项目目录gogetgo.uber.org/zap/zapcoregoget-ugithub.com/natefinch/lumberjack关于下面代码说明: funcgetLogWriter()zapcore.WriteSyncer{lumberJackLogger:=&lumberjack.Logger{Filename:......
  • nlog日志
    添加配置文件设置属性:复制到输出目录,如果较新则复制<?xmlversion="1.0"encoding="utf-8"?><nlogxmlns="http://www.nlog-project.org/schemas/NLog.xsd"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><targets&g......
  • MyBatis-Plus如何关闭SQL日志打印详解
    前言MyBatis-Plus配置关闭打印SQL日记失效追本溯源,关闭打印日记是真的失效吗?找到问题与解决问题 总结 前言前段时间公司的同事都过来问我,hua哥公司的项目出问题了,关闭不了打印sql日记,项目用宝塔自己部署的,磁盘满了才发现大量的打印sql日记,他们百度过都按照网上的配置......