- 浏览: 117675 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
HuoYun:
兄弟,这个代码对于其他excel转换会出问题,如数据库导出的e ...
excel文件转换为pdf文件的问题总结 -
listen-raining:
这两天正在弄这个东东
excel文件转换为pdf文件的问题总结 -
李001:
你是英雄!
excel文件转换为pdf文件的问题总结 -
237304457:
少文,功 能有全事例不,
excel文件转换为pdf文件的问题总结 -
237304457:
提供大资源是哪种方式呀?
excel文件转换为pdf文件的问题总结
package log_util; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Properties; /** * 我的日志记录器 * 日志是以xml格式输出日志信息 * 这样可以方便使用程序来解析日志文件 * @author Kevin.wangwei * 2010-3-12 */ public final class Log { /**是的日志文件保存的父目录,默认是在D盘下log目录下*/ private String filePath="d:\\log"; /**日志文件名称*/ private String logName="Log.log"; /**是否打印到控制台*/ private boolean console=true; /**日志对象实例*/ private static Log instance=null; /**日志文件的完整路径*/ private String realPath=""; /**输出流*/ private PrintWriter out; /**当前系统日期字符串*/ private String dateStr; /**程序运行正常日志信息xml元素名称*/ private final static String INFO="INFO"; /**程序运行异常日志信息xml元素名称*/ private final static String EXCEPTION="exception"; /**阻止通过构造函数创建该对象*/ private Log(){ init(); } /**获得当前对象实例静态方法*/ public static Log getInstance(){ if(instance==null){ synchronized(Log.class){ if(instance==null){//如果没有这个判断,当两个线程同时访问这个方法会出现创建两个对象 instance=new Log(); } } } return instance; } /**初始化*/ private void init(){ Properties prop=new Properties(); try { InputStream input=Log.class.getClassLoader().getResourceAsStream("log.properties"); prop.load(input); String path=prop.getProperty("logFilePath"); if(path!=null&&!(path.trim().equals(""))){ filePath=path; } String name=prop.getProperty("logName"); if(name!=null&&!(name.trim().equals(""))){ logName=name; } String bStr=prop.getProperty("console"); if(bStr.equalsIgnoreCase("true")){ console=true; }else{ console=false; } File f=new File(filePath); if(!f.exists()){ f.mkdir(); } realPath=filePath+"\\"+logName+".log"; SimpleDateFormat simpleDate=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); dateStr=simpleDate.format(new Date()); } catch (IOException e) { e.printStackTrace(); } } /**打印提示信息*/ public void recordLog(String message){ if(message==null){ message="null"; } if(console){ printMessageToConsole(INFO,dateStr,message); } writeLog(INFO,dateStr,message); } /** * 将异常堆栈写到日志文件中 * @param e */ public void recordExceptionMsgLog(Exception e){ if(e==null){ return; } StackTraceElement[] stackTraceMsg=e.getStackTrace(); try { out=new PrintWriter(new FileOutputStream(realPath,true)); out.println("<"+EXCEPTION+" time=\""+dateStr+"\" >"); StringBuffer sb=new StringBuffer(); for(int i=0;i<stackTraceMsg.length;i++){ String message =stackTraceMsg[i].toString(); if(i<stackTraceMsg.length-1){ sb.append(message+"\n"); }else{ sb.append(message); } out.println(message); } out.println("</"+EXCEPTION+">"); out.flush(); if(console){ printMessageToConsole(EXCEPTION,dateStr,sb.toString()); } } catch (FileNotFoundException e1) { e1.printStackTrace(); } } /** * 记录日志 * @param type * @param time * @param message */ private void writeLog(String type,String time,String message){ try { out=new PrintWriter(new FileOutputStream(realPath,true)); out.println("<"+type+" time=\""+time+"\" >"); out.println(message); out.println("</"+type+">"); out.flush(); } catch (FileNotFoundException e) { e.printStackTrace(); }finally{ close(); } } /** * 打印信息到控制台 * @param kind * @param time * @param message */ private void printMessageToConsole(String type,String time,String message){ System.out.println("<"+type+" time=\""+time+"\" >"); System.out.println(message); System.out.println("</"+type+">"); } /*** * 关闭文件流 */ private void close(){ if(out!=null){ out.close(); } } }
#日志文件保存路径,在Linux路径为d:/log/ logFilePath=d:\\log #日志文件名称 logName=bperp #是否打印到控制台 console=true
发表评论
-
java 解析数学表达式
2011-11-20 10:33 5655数学表达式解析工具类: 支持负数运算, 多层括号嵌套运算 ... -
java代码模拟计算机实现原理(一)加法器模拟
2011-09-29 23:30 3334加法器是有两种基本逻辑门电路:异或门、与门电路组成的 ... -
jar 命令简介
2011-02-16 09:55 1213jar 命令用途:采用zip和ZLIB的压缩格式,将一系列程序 ... -
javac 命令
2011-02-16 09:17 1340最简单的方式(javac -d)首先,需要编译JAVA文件,需 ... -
阿拉伯数组转换成对应中文
2011-02-12 11:52 1161package com.heda.code; publi ... -
java二叉树实现
2011-02-12 11:50 1075package com.heda.code; publi ... -
最大公约数和最小公倍数
2011-02-12 11:48 1042package com.heda.code; publi ... -
比较完整数据源实现
2010-06-12 21:35 1493package com.bpsoft.bl ... -
jxl 操作excel Demo
2010-05-25 16:02 1364程序是用:jxl技术来操作excel文档的,实现了excel插 ... -
Jacob操作Word详细教程
2010-05-11 21:16 5465首先, ... -
Java 正则表达式小结
2010-05-11 20:25 1500Java 中正则表达式是在Java 1.4版本以后才出现的。在 ... -
DOM写的xml工具类
2010-04-05 16:15 1410package xml_util; import j ... -
java1.5新特性枚举实现原理
2010-03-09 00:24 1160package com.bp_soft.day01; /** ... -
Struts 1实现原理之我理解
2010-03-06 23:23 1496Struts是在servlet基础上设计的一种框架。下面看一段 ... -
JDBC模板类实现(version1.1)
2010-01-30 14:34 1412package daoUtil.daoTemplate; ... -
BeanUtils.copyProperties(son, father)使用感想
2010-01-28 12:20 3180BeanUtils.copyProperties(son, f ... -
jdbc数据源
2010-01-20 19:06 1104数据源设计思想和数据库连接池设计思想基本相似。大家知道在操作数 ... -
经典JDBC DAOFactory类实现
2010-01-09 23:02 2442package ajax.user.language.fact ... -
WEB应用中常用的数据库连接池
2009-12-26 16:07 1386数据库连接池是WEB应用中必不可少的东西,这是我个人最近参照别 ... -
非常好获得数据库连接工具类
2009-12-26 15:58 1835这是一个写的非常好的获得数据库连接工具类,里面提供常用数据库驱 ...
相关推荐
日志记录器日志记录器日志记录器日志记录器日志记录器
总结来说,这个Python实现的单例模式日志记录器结合了设计模式与日志管理的最佳实践,确保在整个应用程序中只有一个日志记录器实例,方便管理和共享。通过这种方式,我们可以有效地跟踪程序运行状态,同时避免了资源...
在这个例子中,我们将深入探讨如何使用工厂模式来实现一个日志记录器,允许客户通过更改配置文件来灵活切换日志的存储方式。 首先,`Logger.php`是日志记录器的接口,定义了日志记录的基本操作,如`writeLog()`。这...
Express.js作为Node.js中最流行的Web应用框架,提供了丰富的扩展性,让我们能够轻松定制自己的访问日志记录器。"Node.js-基于express的访问日志记录器"项目就是这样一个实现,它专注于在Express应用中记录HTTP请求的...
"Go-golang简单的日志记录器"是一个旨在简化日志管理的库,它提供了将日志输出到控制台、文件以及ElasticSearch的能力。这个库的设计理念是简洁易用,使得开发者可以快速集成并开始记录日志。 首先,让我们了解一下...
标题中的“Node.js-一个轻量级日志记录器底部带有状态栏滚动时不会消失”表明我们正在讨论一个专门针对Node.js环境设计的日志记录工具,它具备独特的特性:在命令行界面中,其状态栏在用户滚动查看日志时会保持可见...
接着定义了抽象工厂接口`ILogFactory`和两个具体工厂类`FileLogFactory`和`DatabaseLogFactory`,它们分别用于创建文件日志记录器和数据库日志记录器。 ```csharp // 抽象日志工厂 interface ILogFactory { Log ...
### 使用Java反射实现的日志记录器 #### 一、引言 本文将详细介绍如何使用Java反射机制实现一个简单但功能齐全的日志记录器——`LoggerUtil`。此日志记录器能够根据不同级别(如INFO、ERROR)记录日志,并允许通过...
**cpp-G3log异步日志记录器** G3log是一个高效的、开源的、C++编写的异步日志记录库。它旨在提供一个简单、快速且无阻塞的日志解决方案,尤其适合性能敏感的应用场景。G3log的命名来源于其主要特性:Global (全局)...
在这个场景中,"使用中断队列实现的日志记录器"是一种优化策略,旨在提高系统的效率和响应速度。 中断队列,通常指的是Java中的`java.util.concurrent.BlockingQueue`接口,它提供了线程安全的数据结构,允许生产者...
`logutils`是一个针对Go(Golang)的扩展日志记录器库,它为标准日志库提供了丰富的增强特性,帮助开发者更方便地管理和调试应用程序。 1. **日志级别控制**:`logutils`允许设置不同的日志级别,如DEBUG、INFO、...
《新华XDPS工程师用户手册B07历史数据和日志记录器》主要介绍了XDPS系统中历史数据和日志记录的管理和配置方法。历史数据收集软件是用于定期收集XDPS网络上的全局点,包括模拟量和开关量的历史数值,以及所有报警和...
`lumberjack`是一个简洁的日志记录器库,它实现了`io.WriteCloser`接口,这使得我们可以方便地将日志输出到文件,并且支持自动滚动和文件大小限制。下面我们将详细探讨`lumberjack`的主要特点和使用方法。 1. **io....
3. `DatabaseLoggerFactory.cs`和`FileLoggerFactory.cs`:这两个类是`LoggerFactory`的具体实现,分别代表数据库日志记录器工厂和文件日志记录器工厂。它们继承自`LoggerFactory`,并实现了`CreateLogger()`方法,...
对于我们做android开发的人来说,有很多时候需要捕获程序在真机上运行的异常记录,使用这个软件,你会很方便的追踪程序的运行日志。
.NET Core 日志记录 Serilog 用法详解 .NET Core 是微软公司推出的一个开源、跨平台的框架,用于...通过本文,我们可以了解如何使用 Serilog 进行日志记录,包括日志记录器的创建、日志级别、日志输出和日志滚动等。
本文将详细探讨一个名为"logger"的轻量级、易用且可扩展的日志记录器,特别关注其在JavaScript和Flutter开发环境中的应用。 首先,我们来理解"小巧"这个特性。在编程领域,"小巧"通常意味着该工具具有小体积、低...