`
wanglizhuang
  • 浏览: 14080 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
最近访客 更多访客>>
社区版块
存档分类
最新评论

文件形式记录日志

阅读更多

写:

package cn.com.crystalnet.common;

import java.io.FileInputStream;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Calendar;

/************************
 * 
 * 记录日志类
 * @author 王立壮
 *
 */

public class RiZhiDB {
	
	private static PrintWriter pw = null;

	public static synchronized void init() {
		if (pw == null) {
			Calendar CD = Calendar.getInstance();
			int YY = CD.get(Calendar.YEAR);
			int MM = CD.get(Calendar.MONTH) + 1;
			
			int DD = CD.get(Calendar.DATE);
			int HH = CD.get(Calendar.HOUR);
			int NN = CD.get(Calendar.MINUTE);
			int SS = CD.get(Calendar.SECOND);
			 
			String month = String.valueOf(MM);
			String date = String.valueOf(DD);
			String s =null;
			if(MM<10){
				month="0"+Integer.valueOf(MM).toString();
			}
			if(DD<10){
				date="0"+Integer.valueOf(DD).toString();
			}
			
			s = "中信水晶网" + YY + month + date + ".txt";
			try {
				String filename= s;
				File file = new File("../webapps/CrystalNet/log/"+filename);
				FileWriter writer = null;
				if(!file.exists()){
					System.out.println("++++file++++++"+file.getPath());
					System.out.println("++++file++++++"+file.getParent());
					System.out.println("++++file++++++"+file.getParentFile());
					System.out.println("++++file++++++"+file.getCanonicalPath());
					System.out.println("++++file++++++"+file.getAbsolutePath());
					if(file.createNewFile()){
						 writer =new FileWriter(file,true);
						
					}
				}else{
					
					writer = new FileWriter(file,true);
				}
				pw = new PrintWriter(writer,true);
				
			} catch (FileNotFoundException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

	public static void debug_log(String s) {
		init();
		pw.println(s);
		pw.flush();

	}

	public static PrintWriter getPW() {
		return pw;
	}

	public static void close() {
		// test();
		getPW().close();

	}

}

 

 

读:

 

package cn.com.crystalnet.common;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;

import cn.com.crystalnet.vo.LogVO;
/**
 * 
 * title:日志查找
 * @author Administrator
 *
 */

public class Find {

	private String[][] str;

	private static ArrayList<LogVO> array;

	private static ArrayList<File> list;

	public static void findfile(File st) {
		File[] str = st.listFiles();
		int length = str.length;
		for (int i = 0; i < length; i++) {
			if (str[i].isDirectory()) {
				findfile(str[i]);
			}
			if (str[i].isFile()) {
				list.add(str[i]);
			}
		}
	}

	public static ArrayList find(String timeFrom, String timeTo) {
		array = new ArrayList<LogVO>();
		list = new ArrayList<File>();

		String time1 = timeFrom.toString().replaceAll("-", "");
		String time2 = timeTo.toString().replaceAll("-", "");

		Integer i1 = Integer.valueOf(time1);
		Integer i2 = Integer.valueOf(time2);

		System.out.println(time1 + "     " + time2);
		BufferedReader br = null;
		String s = null;
		File file = new File("../webapps/CrystalNet/log/");
		System.out.println("++++file++++++"+file.getAbsolutePath());
		File[] strfile = file.listFiles();
		Find.findfile(file);
		// System.out.println(file.getName() + "文件夹下面的所有txt文件为:");
		for (Object tem : list) {
			File list = (File) tem;
			String liststr = list.getName();
			System.out.println(list.length());
			System.out.println(liststr);
			if(!liststr.equals("logging.log")){
				
				String time3 = liststr.substring(5, 13);
				Integer i3 = Integer.valueOf(time3);
				
				if ((liststr.matches("中信水晶网.*.txt") && (i3 >= i1 && i3 <= i2))) {
					try {
						br = new BufferedReader(new FileReader("../webapps/CrystalNet/log/" + liststr));
						while ((s = br.readLine()) != null) {
							// System.out.println(s);
							String[] st = s.split("#");
							LogVO vo = new LogVO();
							int len = st.length;
							for(int i=0 ;i<len;i++){
								
								vo.setDate(st[0]);
								vo.setType(st[1]);
								vo.setContent(st[2]);
							}
							array.add(vo);

						}
					} catch (FileNotFoundException e) {
						e.printStackTrace();
					} catch (IOException e) {
						e.printStackTrace();
					} finally {
						if (br != null) {
							try {
								br.close();
							} catch (IOException e) {
								e.printStackTrace();
							}

						}
					}

				}
			}
			
			//System.out.println("时间:" + time3);
			
		}
		System.out.println(array.size());
		return array;

	}
	

}

 

 

分享到:
评论

相关推荐

    C++日志记录类QTClogCodeSource

    QT实现单例日志记录类,采用宏调用形式打印日志,支持日志文件夹最大日志文件个数,支持设置日志记录大小,当文件夹日志数到达最大时主动删除最老日志文件--使用方式,直接包含类文件夹,代码中LOG("UI初始化完成1")...

    iis日志分析工具_网站日志分析器_蜘蛛访问记录查看器

    iis日志分析工具可分析谷歌,百度,soso,搜索,bing的来访记录,可以到处日期查看。可以查看指定蜘蛛,可以打开文件形式和文件形式。网站日志分析器_蜘蛛访问记录查看器

    Yii框架实现记录日志到自定义文件的方法

    主要介绍了Yii框架实现记录日志到自定义文件的方法,结合实例形式分析了Yii框架日志记录的原理及自定义日志记录的相关配置与实现技巧,需要的朋友可以参考下

    android日志分析&崩溃拦截

    抓取app的奔溃日志报告,并且可以以邮件的形式将发送给开发者,也可以将错误日志以.txt文件形式保存.rar 提取xutil的logutil轻量高效.rar 日志记录,开源项目使用方法见说明.zip 用户反馈小demo.zip

    tests_fonct_accor

    要启动一系列测试,以xml文件形式记录日志的结果 casperjs test suite-nov-prod-fr-france.js --xunit=log_tests_nov.xml 开始2张图片之间的差异 ./node_modules/gulp/bin/gulp.js 注意:使用当前配置,这是我发现...

    Node.js的JSON日志库bunyan.zip

    bunyan CLI,非常漂亮的cli,可用于打印和日志过滤要记录日志调用源的位置(文件、行数、函数)非常容易,只须设置src:true,log.child实现了轻量级和专业化的Logger实例通过序列化工具实现定制的渲染输出通过Dtrace...

    Python logging日志模块 配置文件方式

    Python内置 非常强大的日志模块 ==&gt; logging 今天给大家分享一下以配置文件形式进行配置log日志 ; Centos6.7 Python3.6 logging0.5.1.2 logging模块有三个比较重要的功能组件: 1、loggers 配置文件可定义一些输出...

    .net日志组件NLog.zip

    记录跟踪信息的目标(target)可以为如下几种形式:文件文本控制台Email数据库网络中的其它计算机(通过TCP或UDP)基于MSMQ的消息队列Windows系统日志其他形式,请参考http://www.nlog-project.org/targets.html除此...

    如何编写批处理文件批处理文件批处理文件

    该集表示以增量形式从开始到结束的一个数字序列。 因此,(1,1,5) 将产生序列 1 2 3 4 5,(5,-1,1) 将产生 序列 (5 4 3 2 1)。 FOR /F ["options"] %variable IN (file-set) DO command FOR /F ["options"] %...

    Laravel框架实现的记录SQL日志功能示例

    主要介绍了Laravel框架实现的记录SQL日志功能,结合实例形式总结分析了Laravel框架监听并记录SQL相关操作技巧与注意事项,需要的朋友可以参考下

    mysql 重要日志文件汇总

    二进制日志 binlog 用于记录数据库执行的写入性操作(不包括查询)信息,以二进制的形式保存在磁盘中。使用任何存储引擎的 mysql 数据库都会记录 binlog 日志。在 binlog 中记录的是逻辑日志,也就是 SQL 语句。SQL ...

    Log4j日志管理系统简单使用说明

     完成了以上连个步骤以后,下面就可以按日志的不同级别插入到你要记录日志的任何地方了。  语法表示:  Logger.debug(Object message);  Logger.info(Object message);  Logger.warn(Object message);  Logger...

    node中使用log4js4.x版本记录日志的方法

    logFile: { //文件形式打印日志 type: dateFile, filename: '../logs/project',//写入日志文件的路径 alwaysIncludePattern: true,//(默认为false) - 将模式包含在当前日志文件的名称以及备份中 //compress: ...

    文件加密软件——绿盾

    1、实时操作日志 :实时详细地记录所有终端的操作日志。包括终端上窗口标题的变换、程序的启动关闭、浏览的网址、收发的邮件标题、创建删除文件等; 2、屏幕快照、屏幕追踪、屏幕回放  3、应用程序使用记录、使用...

    ASP.NET记录错误日志的实现方法

    我们这样操作,每当遇到程序错误时,将使用者导航到一个单独的页面,同时错误将被记录到服务器上的一个文本文件,每当错误发生时,我们将以日志的形式每天记录。 首先,我先写一个静态方法用于将错误信息记录到文本...

    狂龙文件加密系统 V2.0

    新增的历史记录功能:用户在使用过程中,每做一项操作都将自动记录 下来,从而解决了电脑重装或删除文件后产生找不到已加密文件的烦恼。 注意:请保留原先注册的账号与密码,已便找回原先已加密过的文件。

    Rackspace的日志处理

     通过系统传输Rackspace用户的邮件产生了相当大的“文件”路径信息,它们以各种格式的日志文件的形式存放,每天大约有150 GB。聚集这些数据对系统发展规划以及了解用户如何使用我们的系统是非常有帮助的,并且,...

    教你自动恢复MySQL数据库的日志文件(binlog)

    如果未包含在选项文件中,当服务器启动时,可以在命令行中以选项的形式给出。启用二进制日志的选项为 –log-bin。要想确定当前的二进制日志文件的文件名,输入下面的MySQL语句: SHOW BINLOG EVENTS

    监控文件内的任何修改

    监控文件内的任何修改 包括增加,删除,修改 ; 以文本形式记录日志,但无操作人资料(遗憾)

    log4net实例

    RollingFileAppender 将日志以回滚文件的形式写到文件中。 SmtpAppender 将日志写到邮件中。 - SmtpPickupDirAppender 将消息以文件的方式放入一个目录中,像IIS SMTP agent这样的SMTP代理就可以阅读或发送它们。...

Global site tag (gtag.js) - Google Analytics