Added Stream logger classes
This commit is contained in:
parent
4a817cbf31
commit
a04041c07c
5 changed files with 250 additions and 37 deletions
73
src/zutil/log/InputStreamLogger.java
Normal file
73
src/zutil/log/InputStreamLogger.java
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
package zutil.log;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
/**
|
||||
* This class will log all data that passes through a InputStream.
|
||||
* The logging is done with Javas standard Logger with Level.FINEST.
|
||||
*
|
||||
* Created by Ziver on 2015-10-15.
|
||||
*/
|
||||
public class InputStreamLogger extends InputStream implements StreamLogger.LogCallback {
|
||||
private static final Logger logger = LogUtil.getLogger();
|
||||
|
||||
private InputStream in;
|
||||
private StreamLogger log;
|
||||
|
||||
public InputStreamLogger(InputStream in){
|
||||
this(null, in);
|
||||
}
|
||||
public InputStreamLogger(String prefix, InputStream in){
|
||||
this.in = in;
|
||||
this.log = new StreamLogger(prefix, this);
|
||||
}
|
||||
|
||||
|
||||
public boolean isLoggable(){
|
||||
return logger.isLoggable(Level.FINEST);
|
||||
}
|
||||
public void log(String msg){
|
||||
logger.finest(msg);
|
||||
}
|
||||
|
||||
//************** PROXY METHODS ******************
|
||||
public int read() throws IOException{
|
||||
int n = in.read();
|
||||
log.log(n);
|
||||
return n;
|
||||
}
|
||||
public int read(byte b[]) throws IOException {
|
||||
int n = in.read(b);
|
||||
log.log(b, 0, b.length);
|
||||
return n;
|
||||
}
|
||||
public int read(byte b[], int off, int len) throws IOException {
|
||||
int n = in.read(b, off, len);
|
||||
log.log(b, off, len);
|
||||
return n;
|
||||
}
|
||||
public long skip(long n) throws IOException {
|
||||
return in.skip(n);
|
||||
}
|
||||
public int available() throws IOException {
|
||||
return in.available();
|
||||
}
|
||||
public void close() throws IOException {
|
||||
in.close();
|
||||
log.flushLog();
|
||||
}
|
||||
public void mark(int readlimit) {
|
||||
in.mark(readlimit);
|
||||
}
|
||||
public void reset() throws IOException {
|
||||
in.reset();
|
||||
log.clearLog();
|
||||
}
|
||||
public boolean markSupported() {
|
||||
return in.markSupported();
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue