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());
}
}
分享到:
相关推荐
本文将详细探讨“VC日志记录类”的实现及其特点,以`LogFile.cpp`和`LogFile.h`两个文件为核心,我们将深入理解如何在多线程环境下有效地管理和维护日志。 首先,`LogFile.h`文件通常会定义一个名为`LogFile`的类,...
本篇将深入探讨如何在C++中实现日志记录到文件的功能。 首先,我们需要了解基本的日志记录概念。日志通常包含时间戳、日志级别(如DEBUG、INFO、WARNING、ERROR)、日志消息等信息。这些信息被格式化后写入到一个...
描述中的"源码实现了QT平台下的日志记录功能"可能是指通过编写代码来创建一个类或模块,专门负责处理日志的记录和管理。 日志路径的设置是关键,因为这决定了日志文件存储的位置。在QT中,可以使用QDir类来处理目录...
在上面的配置中,当单个日志文件达到100MB时,系统会自动创建新的文件,并将旧文件按日期压缩保存,最多保留3650天的历史记录。 4. 配置文件加载与最佳实践 Spring Boot默认支持logback,因此在项目中,我们可以...
在Linux系统中,C++编写日志文件是常见的任务,特别是在开发系统软件或者服务时,为了追踪程序运行状态和错误信息,日志记录是必不可少的。本文将介绍一种简化自glog的日志功能,它专注于写入日志文件,不再包含glog...
- **全局过滤器(Global Filter)**:在MVC中,可以创建一个全局过滤器,该过滤器会在每个控制器的Action执行前后自动调用,记录操作日志。这样可以避免在每个Action中手动调用日志记录代码,提高代码的可维护性。 ...
通过以上步骤,我们就能在QT项目中实现一个基本的操作日志记录系统,将所有的`qDebug()`输出保存到本地TXT文件。这种方法不仅适用于开发阶段的调试,还可以在生产环境中用于长期的日志监控和分析,帮助开发者快速...
支持写日志到文件,支持日志级别和设置日志最大大小,当超过日志最大大小时,会新生成一个以时间命名的文件。 因获取程序名和互斥锁,用了qt类,如果不想包含qt,可以使用另外的程序名和基于windows或者linux或者...
在C#中,创建一个简单的日志记录器类可以这样开始: ```csharp using log4net; using log4net.Config; public class Logger { private static readonly ILog log = LogManager.GetLogger(typeof(Logger)); ...
本教程将深入探讨如何在C++中创建一个能够打印log到文件的系统,同时具备删除旧日志和设定日志文件大小的功能。 首先,我们需要理解日志的基本概念。日志通常包含程序运行过程中的信息,如错误信息、警告消息、调试...
日志记录(log recording)是软件开发中的一个重要环节,它有助于调试、监控和故障排查。本篇文章将深入探讨如何在VC++、C++和MFC环境下实现日志功能。 1. **日志的基本概念** - 日志是记录程序运行过程中的事件、...
首先,日志记录的基本概念是将程序运行过程中的信息(如错误消息、警告、调试信息等)保存到文件或输出设备中,以便后续分析。在MFC中,我们可以创建一个自定义的日志类来实现这一功能。 `Log.cpp` 和 `Log.h` 文件...
2. **打开日志文件**: 在`LogFile`类中,我们需要一个方法来打开或创建日志文件。这通常在类的构造函数中完成,使用QFile的`open()`函数,指定写入模式。 3. **写入日志**: 创建一个`log()`方法,接受一个字符串...
为了确保不丢失任何日志,可以编写一个Android应用,使用Java的`ProcessBuilder`类或者`Runtime.getRuntime().exec()`方法来执行上述命令,并实时将日志保存到本地文件。例如,创建一个名为`LogRecordHelper`的类,...
在“LOGO日志记录”中,"LOGO"可能是"Logging Object"的缩写,指的是LabVIEW中的一个专门用于日志记录的对象或类。这个对象可能封装了上述日志组件的所有功能,并提供了简洁的接口供开发者使用。 压缩包内的“log...
综上所述,一个完善的日志文件类在软件开发中起着至关重要的作用,它帮助开发者追踪程序状态,定位问题,优化性能,确保系统的稳定运行。理解和掌握如何设计和使用这样的类对于任何IT专业人员来说都是必要的技能。
本文将深入探讨Android系统中的异常处理机制和日志记录功能,以及如何有效地保存日志文件。 一、Android异常处理 1. **异常分类**:在Android中,异常主要分为两种类型——Checked Exception(已检查异常)和...
在这个项目中,日志记录类完全使用C++编写,意味着它利用了C++的面向对象特性,如封装、继承和多态,来实现高效且可扩展的日志系统。 2. **Linux平台**:Linux是一个开源的操作系统,常用于服务器和嵌入式设备。...
为了将日志保存到手机本地,我们可以编写一个简单的日志管理器类,该类负责收集应用产生的日志,并将其保存到手机的文件系统中。例如,可以创建一个名为`LogFileManager`的类,提供`addLog()`方法接收日志信息,并...