- 浏览: 733060 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
梦行Monxin商城系统:
java网上商城与php网上商城比较 -
梦行Monxin商城系统:
java网上商城与php网上商城比较 -
任楚娴:
你好,请问html = nvl(html); 这句中的nvl( ...
java html串转换成文本串 -
u013246812:
,谢拉!
jQuery ui Dialog 讲解参数 -
大宝剑99:
...
前端优化
针对System.out 以及 System.err 进行拦截 比如将打印信息 输出到指定的文件:
不如 拦截 Jdk logger 的 ConsoleHandler 或者 logj4j的 ConsoleAppender 时
一下是 demo 代码:
============================================================
package com.bes.graphics;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.PrintStream;
import java.io.RandomAccessFile;
public class SystemErrInterceptor {
private SystemErrInterceptor(){
System.setErr(new SelfPrintStream());
System.setOut(new SelfPrintStream());
}
private static final SystemErrInterceptor instance = new SystemErrInterceptor();
public static final SystemErrInterceptor getInstance(){
return instance;
}
private static class SelfPrintStream extends PrintStream{
public SelfPrintStream(){
super(new SelfOutputStream());
}
@Override
public void print(boolean b) {
log(String.valueOf(b));
}
@Override
public void print(char c) {
log(String.valueOf(c));
}
@Override
public void print(char[] s) {
log(new String(s));
}
@Override
public void print(double d) {
log(String.valueOf(d));
}
@Override
public void print(float f) {
log(String.valueOf(f));
}
@Override
public void print(int i) {
log(String.valueOf(i));
}
@Override
public void print(long l) {
log(String.valueOf(l));
}
@Override
public void print(Object obj) {
log(String.valueOf(obj));
}
@Override
public void print(String s) {
log(s);
}
@Override
public void println() {
log("\n");
}
@Override
public void println(boolean x) {
log(x + "\n");
}
@Override
public void println(char x) {
log(x + "\n");
}
@Override
public void println(char[] x) {
log(new String(x) + "\n");
}
@Override
public void println(double x) {
log(x + "\n");
}
@Override
public void println(float x) {
log(x + "\n");
}
@Override
public void println(int x) {
log(x + "\n");
}
@Override
public void println(long x) {
log(x + "\n");
}
@Override
public void println(Object x) {
log(x + "\n");
}
@Override
public void println(String x) {
log(x + "\n");
}
}
private static class SelfOutputStream extends ByteArrayOutputStream{
@Override
public synchronized void write(byte[] b, int off, int len) {
log(String.valueOf(b));
}
@Override
public synchronized void write(int b) {
log(String.valueOf(b));
}
@Override
public void write(byte[] b) throws IOException {
log(String.valueOf(b));
}
}
/**
* @param obj
*/
private static void log(Object obj){
try{
File f = new File("c:/a.log");
if(!f.exists()){
f.createNewFile();
}
RandomAccessFile raf = new RandomAccessFile(f, "rw");
raf.seek(raf.length());
String msg = obj + "\r\n";
raf.write(msg.getBytes("utf-8"));
}catch(Exception ex){
ex.printStackTrace();
}
}
}
不如 拦截 Jdk logger 的 ConsoleHandler 或者 logj4j的 ConsoleAppender 时
一下是 demo 代码:
============================================================
package com.bes.graphics;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.PrintStream;
import java.io.RandomAccessFile;
public class SystemErrInterceptor {
private SystemErrInterceptor(){
System.setErr(new SelfPrintStream());
System.setOut(new SelfPrintStream());
}
private static final SystemErrInterceptor instance = new SystemErrInterceptor();
public static final SystemErrInterceptor getInstance(){
return instance;
}
private static class SelfPrintStream extends PrintStream{
public SelfPrintStream(){
super(new SelfOutputStream());
}
@Override
public void print(boolean b) {
log(String.valueOf(b));
}
@Override
public void print(char c) {
log(String.valueOf(c));
}
@Override
public void print(char[] s) {
log(new String(s));
}
@Override
public void print(double d) {
log(String.valueOf(d));
}
@Override
public void print(float f) {
log(String.valueOf(f));
}
@Override
public void print(int i) {
log(String.valueOf(i));
}
@Override
public void print(long l) {
log(String.valueOf(l));
}
@Override
public void print(Object obj) {
log(String.valueOf(obj));
}
@Override
public void print(String s) {
log(s);
}
@Override
public void println() {
log("\n");
}
@Override
public void println(boolean x) {
log(x + "\n");
}
@Override
public void println(char x) {
log(x + "\n");
}
@Override
public void println(char[] x) {
log(new String(x) + "\n");
}
@Override
public void println(double x) {
log(x + "\n");
}
@Override
public void println(float x) {
log(x + "\n");
}
@Override
public void println(int x) {
log(x + "\n");
}
@Override
public void println(long x) {
log(x + "\n");
}
@Override
public void println(Object x) {
log(x + "\n");
}
@Override
public void println(String x) {
log(x + "\n");
}
}
private static class SelfOutputStream extends ByteArrayOutputStream{
@Override
public synchronized void write(byte[] b, int off, int len) {
log(String.valueOf(b));
}
@Override
public synchronized void write(int b) {
log(String.valueOf(b));
}
@Override
public void write(byte[] b) throws IOException {
log(String.valueOf(b));
}
}
/**
* @param obj
*/
private static void log(Object obj){
try{
File f = new File("c:/a.log");
if(!f.exists()){
f.createNewFile();
}
RandomAccessFile raf = new RandomAccessFile(f, "rw");
raf.seek(raf.length());
String msg = obj + "\r\n";
raf.write(msg.getBytes("utf-8"));
}catch(Exception ex){
ex.printStackTrace();
}
}
}
发表评论
-
全国最新行政区划代码(Tree)json数据以及地理数据
2020-11-11 21:23 339基于阿里提供的地理数据 http://datav.aliyun ... -
小知识点--解锁 AppChecker ping ip
2019-06-19 08:40 394在使用AppChecker 进行主动拨测的时候,目 ... -
记录年会小系统
2018-02-04 14:42 1120有点意思,年会过后,抽奖活动saas小系统扒光看看:支持P ... -
jdbc方式以 sys账号连接oracle数据的问题
2017-08-22 10:44 450多年以后,在操作oracle 时 发现 jdbc 连 ... -
proguard 代码混淆
2016-11-22 10:59 664url:http://proguard.sourceforg ... -
solr 表达式意义
2015-02-03 19:29 7421. “:”指定字段查指定值,如返回所有值*:* 2. “? ... -
solr 安装配置
2015-02-03 13:15 715solr 安装配置步骤: 1 首先下载solr(最新 ... -
javax.net.ssl.SSLKeyException: RSA premaster secre临时解决方案
2014-11-25 19:38 4365javax.net.ssl.SSLKeyException ... -
compass 小知识点
2014-09-15 10:22 902今天发现排序不管事, 查了一下:索引的问题:排序的列不进 ... -
java_opts 常用
2014-08-14 13:16 1162JVM设置,可以查考如下配置example:# Memory ... -
RPC Socket 服务调用模型
2014-04-09 16:14 574最近在看Dubbo 服务框架, 通过RPC 实现了输入和 ... -
JVM 基本参数
2014-04-03 11:49 760基本的JVM参数:-classpath, -cp: 设置类搜 ... -
eclipse 快捷键失效解决方法
2014-01-17 17:20 692有时候eclispe快捷键失效了,编码起来太难受了。 ... -
Compass+ lucene 通用代码(脱离数据库)
2013-11-08 15:09 865最近需要通过检索分类的方式进行处理,所以就写了接口与实 ... -
DEBUG远程tomcat
2013-08-21 13:35 970一、在windows系统中:打开%CATALINE_H ... -
自动获取网页内容,然后写入excel文档中
2013-07-05 15:22 3416今天需要将北京物业公司名称以及电话给整理出来,发现爱帮 ... -
继续学习jersey+spring 构建RESTful风格 webservice
2013-03-13 10:36 3418j先说一下springmvc rest风格 spring ... -
尽量少使用jaxb 进行xml与对象互换
2013-03-09 17:33 1300尽量少使用jaxb 进行xml与对象互换 问题不少,这个好 ... -
Cookie path的设置
2013-02-21 10:58 1912cookie path 设置 IE对如下的co ... -
http 相关知识点
2012-10-11 10:49 1020Host头域 Host头域指定请求资源的Intenet主机和 ...
相关推荐
下面小编就为大家带来一篇java基础(System.err和System.out)详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
System.err.println("私钥签名——公钥验证签名"); // 产生签名 String sign = CertificateUtils.signToBase64(data.getBytes("utf-8"), keyStorePath, alias, password); System.out.println("私钥签名:" + ...
libcom_err.so.3 libcom_err.so.3
System.out.println(rs.getString(1)); else System.out.println("totle:0"); rs.close(); stmt.close(); conn.close(); } catch (ClassNotFoundException cnfe) { System.err.println("Unable to...
如何改写Err.Raise,使之不弹出对话框只是中止程序 有个中止程序的问题困扰了我一个礼拜,始终没有相处解决方案,特来请教各位高手 背景: 1.目前我们公司的一套程序由于历史遗留问题,没有采用正规的函数返回值...
ml.err ml 汇编,在Bin中,从MASM32中获取到的
ML.ERR,编译有时会用到,不知道做什么的
System.out.println("结果:" + resultEntity.getResult() + "|状态:" + resultEntity.getStatusCode()); } else { System.err.println("执行出错了-->" + resultEntity.getErrorMsg()); } } else ...
ML.exe ML.err H2inc.exe H2inc.err Win.inc Readme.txt Errmsg.txt Support.txt
System.err.println("IOException: " + ioe); } } /* 通过建立的连接请求一个页面,显示回应然后关闭socket */ public static void getPage(Socket clientSocket) { try { // 需要输入和输出流
安装VS2003时找不到H2INC.ERR文件问题的解决方案
re1.1.err.json
re1.2.err.json
解决SPSS Undefined error -Cannot open text file"F:\SPSS 25...\lang\en\spss.err":No such file or directory Restart the processor?
反射机制用Java描述下载资料 import java.lang.reflect.Array; public class ArrayTest { public static void main(String[] args){ try{ //创建一个元素类型为String,长度为... System.err.println(e); }
// 文件名:moreServer.java import java.io.*; import java.net.*; import java.util.*; /** * <p>Title: 多线程服务器 * <p>Description: 本实例使用多线程实现... System.out.println("close err"+e); } } } }
import java.util.ArrayList; import java.util.List; ... MongoCredential credential = MongoCredential.createScramSha... System.err.println( e.getClass().getName() + ": " + e.getMessage() ); } } }
System.err.println(str1 == str2); A.True B. false 2、下面程序的运行结果:() public static void main(String args[]) { Thread t = new Thread() { public void run() { pong(); } }; t.run(); ...
System.out.print ——标准输出流 Java 的流类,主要是:输入流类 InputStream 输出流类 OutputStream Java 系统预先定义好 3 个流对象,静态属性 System.out 标准输出设备:显示器 ...
System.out和System.err都被打印到catalina.out。catalina.out不会rotate。一般在部署Tomcat后,运行久了,catalina.out文件会越来越大,对系统的稳定造成了一定的影响。 1、可通过修改conf/logging.properties日志...