`
baobeituping
  • 浏览: 1068364 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

日志记录类(将日志保存在一个文件中)

阅读更多

package com.util;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;

public class Log {

 private String filepath = "C:\\Documents and Settings\\Administrator\\桌面\\tmp";
 
 public Log() {
 }

 // public static void log(int i, int level) {
 // log("" + i, level);
 // }

 // public static void log(String info, int level) {
 // // if (level >= Config.getInstance().getLogLevel())
 // logf(info, level);
 // }

 // public static void log(String info) {
 // log(info, 0);
 // }

 // public static void log(int info) {
 // log(info, 0);
 // }

 // private static synchronized void logf(String info, int level) {
 // infoBuffer.delete(0, infoBuffer.length());
 // time.setTime(System.currentTimeMillis());
 // infoBuffer.append("[").append(level).append("]")
 // .append(time.toString()).append("\t").append(info);
 // Config.getInstance().getLogArea().append("\r\n");
 // Config.getInstance().getLogArea().append(infoBuffer.toString());
 // writeFile(infoBuffer.toString());
 // }

 // public static void log(Exception e) {
 // log(e.getMessage(), 2);
 // if (Config.getInstance().getLogLevel() <= 2) {
 // FileOutputStream fos = null;
 // try {
 // fos = new FileOutputStream(Config.getInstance().getPath()
 // + "log" + File.separator + "log.txt", true);
 // e.printStackTrace(new PrintStream(fos));
 // } catch (Exception ex) {
 // ex.printStackTrace();
 // } finally {
 // if (fos != null)
 // try {
 // fos.close();
 // } catch (Exception es) {
 // es.printStackTrace();
 // }
 // }
 // }
 // }

 // private static void writeFile(String message) {
 // writeFile(message, Config.getInstance().getPath() + "log"
 // + File.separator + "log.txt");
 // }

 public static void writeFile(String message, String path) {
  writeFile(message, path, true);
 }

 public static void writeFile(String message, String path, boolean append) {
  FileWriter os = null;
  try {
   //File file = new File(path.substring(0, path.lastIndexOf("\\")));
   //java.text.SimpleDateFormat f = new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
   //java.util.Date utilDate = new java.util.Date();
   String separator= System.getProperty("file.separator");
   File file = new File(path.substring(0, path.lastIndexOf(separator)));
   if (!file.exists())// 如果不存在就创建
    file.mkdirs();

   os = new FileWriter(path, append);
   //os.write(f.format(utilDate)+"\r\n"+message + System.getProperty("line.separator"));
   os.write(message + System.getProperty("line.separator"));
   Thread.sleep(500);
  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   try {
    os.close();
   } catch (Exception e) {
    e.printStackTrace();
   }
  }
 }

 public static List readFile(String filename) throws IOException {
  return readFile(filename, 0, 0x7fffffff);
 }

 public static List readFile(String filename, int beginPos, int endPos)
   throws IOException {
  List list = new ArrayList(100);
  BufferedReader reader = null;
  String s = null;
  try {
   reader = new BufferedReader(new InputStreamReader(
     new BufferedInputStream(new FileInputStream(filename))));
   for (int pos = 0; (s = reader.readLine()) != null
     && pos >= beginPos && pos++ < endPos;)
    list.add(s);

  } catch (IOException e) {
   // log(e);
   throw e;
  }
  return list;
 }

 public static void createDictory(String path) {
  File f = new File(path);
  File ft = f;
  for (; !f.exists(); f = f.getParentFile())
   ft = f;

  if (f != ft) {
   ft.mkdir();
   createDictory(path);
  }
 }

 public static void copyFile(String oldPathFile, String newPathFile) {
  InputStream inStream = null;
  FileOutputStream fs = null;
  try {
   int byteread = 0;
   File oldfile = new File(oldPathFile);
   if (oldfile.exists()) {
    inStream = new FileInputStream(oldPathFile);
    fs = new FileOutputStream(newPathFile);
    byte buffer[] = new byte[1444];
    while ((byteread = inStream.read(buffer)) != -1)
     fs.write(buffer, 0, byteread);
   }
  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   try {
    inStream.close();
   } catch (Exception ex) {
   }
   try {
    fs.close();
   } catch (Exception ex) {
   }
  }
 }

 public static final int LEVEL_DEBUG = 0;

 public static final int LEVEL_INFO = 1;

 public static final int LEVEL_ERROR = 2;

 private static Timestamp time = new Timestamp(System.currentTimeMillis());

 private static StringBuffer infoBuffer = new StringBuffer(200);
 
 public static String getRealPath() {
   //String realPath = Log.class.getClassLoader().getResource("").getFile();
   String realPath =new File("").getAbsolutePath();
   java.io.File file = new java.io.File(realPath);
   realPath = file.getAbsolutePath();
   try {
   realPath = java.net.URLDecoder.decode(realPath, "utf-8");
   } catch (Exception e) {
   e.printStackTrace();
   }
   return realPath;
 }
 public static void main(String[] args)
 {
  //String path = "E:\\Tomcat 6.0\\webapps\\Kindergarden\\Upload\\picmanagelog\\bugSql.log";
  //String separator= System.getProperty("file.separator");
  //System.out.println(System.getProperty("line.separator"));
  System.out.println(getRealPath());
  System.out.println("7"+new File("").getAbsolutePath());

 }
}

  • Log.rar (1.8 KB)
  • 下载次数: 10
分享到:
评论

相关推荐

    VC日志记录类

    本文将详细探讨“VC日志记录类”的实现及其特点,以`LogFile.cpp`和`LogFile.h`两个文件为核心,我们将深入理解如何在多线程环境下有效地管理和维护日志。 首先,`LogFile.h`文件通常会定义一个名为`LogFile`的类,...

    c++记录日志到文件里面

    本篇将深入探讨如何在C++中实现日志记录到文件的功能。 首先,我们需要了解基本的日志记录概念。日志通常包含时间戳、日志级别(如DEBUG、INFO、WARNING、ERROR)、日志消息等信息。这些信息被格式化后写入到一个...

    QT 保存日志数据,根据条件自动创建日志文件

    描述中的"源码实现了QT平台下的日志记录功能"可能是指通过编写代码来创建一个类或模块,专门负责处理日志的记录和管理。 日志路径的设置是关键,因为这决定了日志文件存储的位置。在QT中,可以使用QDir类来处理目录...

    Logback配置文件根据 LEVEL级别将日志分类保存到不同文件.docx

    在上面的配置中,当单个日志文件达到100MB时,系统会自动创建新的文件,并将旧文件按日期压缩保存,最多保留3650天的历史记录。 4. 配置文件加载与最佳实践 Spring Boot默认支持logback,因此在项目中,我们可以...

    linux系统中c++写日志文件功能分享

    在Linux系统中,C++编写日志文件是常见的任务,特别是在开发系统软件或者服务时,为了追踪程序运行状态和错误信息,日志记录是必不可少的。本文将介绍一种简化自glog的日志功能,它专注于写入日志文件,不再包含glog...

    在MVC中记录操作日志类

    - **全局过滤器(Global Filter)**:在MVC中,可以创建一个全局过滤器,该过滤器会在每个控制器的Action执行前后自动调用,记录操作日志。这样可以避免在每个Action中手动调用日志记录代码,提高代码的可维护性。 ...

    QT添加操作日志记录

    通过以上步骤,我们就能在QT项目中实现一个基本的操作日志记录系统,将所有的`qDebug()`输出保存到本地TXT文件。这种方法不仅适用于开发阶段的调试,还可以在生产环境中用于长期的日志监控和分析,帮助开发者快速...

    记录日志到文件

    支持写日志到文件,支持日志级别和设置日志最大大小,当超过日志最大大小时,会新生成一个以时间命名的文件。 因获取程序名和互斥锁,用了qt类,如果不想包含qt,可以使用另外的程序名和基于windows或者linux或者...

    C#,WPF日志管理 C#编程--项目常用日志保存

    在C#中,创建一个简单的日志记录器类可以这样开始: ```csharp using log4net; using log4net.Config; public class Logger { private static readonly ILog log = LogManager.GetLogger(typeof(Logger)); ...

    c++ 打印log 日志到文件

    本教程将深入探讨如何在C++中创建一个能够打印log到文件的系统,同时具备删除旧日志和设定日志文件大小的功能。 首先,我们需要理解日志的基本概念。日志通常包含程序运行过程中的信息,如错误信息、警告消息、调试...

    vc++ c++ mfc 日志 log 记录

    日志记录(log recording)是软件开发中的一个重要环节,它有助于调试、监控和故障排查。本篇文章将深入探讨如何在VC++、C++和MFC环境下实现日志功能。 1. **日志的基本概念** - 日志是记录程序运行过程中的事件、...

    MFC 日志记录

    首先,日志记录的基本概念是将程序运行过程中的信息(如错误消息、警告、调试信息等)保存到文件或输出设备中,以便后续分析。在MFC中,我们可以创建一个自定义的日志类来实现这一功能。 `Log.cpp` 和 `Log.h` 文件...

    qt实现txt日志记录功能

    2. **打开日志文件**: 在`LogFile`类中,我们需要一个方法来打开或创建日志文件。这通常在类的构造函数中完成,使用QFile的`open()`函数,指定写入模式。 3. **写入日志**: 创建一个`log()`方法,接受一个字符串...

    Android-将logcat日志存储到文件中日志量较大的情况下方便查看

    为了确保不丢失任何日志,可以编写一个Android应用,使用Java的`ProcessBuilder`类或者`Runtime.getRuntime().exec()`方法来执行上述命令,并实时将日志保存到本地文件。例如,创建一个名为`LogRecordHelper`的类,...

    log组件_labview日志组件_LOGO日志记录_

    在“LOGO日志记录”中,"LOGO"可能是"Logging Object"的缩写,指的是LabVIEW中的一个专门用于日志记录的对象或类。这个对象可能封装了上述日志组件的所有功能,并提供了简洁的接口供开发者使用。 压缩包内的“log...

    日志文件类

    综上所述,一个完善的日志文件类在软件开发中起着至关重要的作用,它帮助开发者追踪程序状态,定位问题,优化性能,确保系统的稳定运行。理解和掌握如何设计和使用这样的类对于任何IT专业人员来说都是必要的技能。

    android 异常捕捉和日志文件保存

    本文将深入探讨Android系统中的异常处理机制和日志记录功能,以及如何有效地保存日志文件。 一、Android异常处理 1. **异常分类**:在Android中,异常主要分为两种类型——Checked Exception(已检查异常)和...

    保存日志 纯C++版本

    在这个项目中,日志记录类完全使用C++编写,意味着它利用了C++的面向对象特性,如封装、继承和多态,来实现高效且可扩展的日志系统。 2. **Linux平台**:Linux是一个开源的操作系统,常用于服务器和嵌入式设备。...

    app打印日志保存到手机上传服务器

    为了将日志保存到手机本地,我们可以编写一个简单的日志管理器类,该类负责收集应用产生的日志,并将其保存到手机的文件系统中。例如,可以创建一个名为`LogFileManager`的类,提供`addLog()`方法接收日志信息,并...

Global site tag (gtag.js) - Google Analytics