Statistics
| Revision:

gvsig-tools / org.gvsig.tools / library / trunk / org.gvsig.tools / org.gvsig.tools.lib / src / main / java / org / gvsig / tools / logger / FilteredLogger.java @ 1088

History | View | Annotate | Download (1.25 KB)

1

    
2

    
3
package org.gvsig.tools.logger;
4

    
5
import org.slf4j.Logger;
6

    
7
public class FilteredLogger {
8
        protected int count = 0;
9
        protected final Logger logger;
10
        protected final int max;
11
        protected String processName;
12
        
13
        public FilteredLogger(Logger logger, String processName, int max) {
14
            this.max = max;
15
            this.logger = logger;
16
            this.processName = processName;
17
            this.count = 0;
18
        }
19

    
20
        protected boolean canDumpMoreMessages() {
21
            if( ++this.count < this.max ) {
22
                return true;
23
            } else if( this.count == this.max ) {
24
                this.logger.info("Too many errors, don't dump more in this process ("+processName+").");
25
            }
26
            return false;
27
        }
28
                
29
        public void warn(String msg, Throwable th) {
30
            if( canDumpMoreMessages() ) {
31
                this.logger.warn(msg,th);
32
            }
33
        }
34
        
35
        public void warn(String msg) {
36
            if( canDumpMoreMessages() ) {
37
                this.logger.warn(msg);
38
            }
39
        }
40
        
41
        public void info(String msg) {
42
            if( canDumpMoreMessages() ) {
43
                this.logger.info(msg);
44
            }
45
        }
46
}