Statistics
| Revision:

root / org.gvsig.toolbox / trunk / org.gvsig.toolbox / org.gvsig.toolbox.core / src / main / java / es / unex / sextante / core / SextanteLogHandler.java @ 90

History | View | Annotate | Download (2.54 KB)

1
package es.unex.sextante.core;
2

    
3
import java.util.ArrayList;
4
import java.util.Date;
5

    
6
import org.slf4j.Logger;
7
import org.slf4j.LoggerFactory;
8

    
9
/**
10
 * A Handler that outputs to the SEXTANTE log file, and also provides some additional methods to access log messages.
11
 */
12
public class SextanteLogHandler {
13

    
14
   private static final Logger m_Logger = LoggerFactory.getLogger(SextanteLogHandler.class);
15

    
16
   ArrayList<LogElement> logElements = new ArrayList<LogElement>();
17

    
18

    
19
   public SextanteLogHandler() {
20
      super();
21

    
22
   }
23

    
24
   public void addError(final String sMessage) {
25

    
26
           m_Logger.warn(sMessage);
27

    
28
      final Date todaysDate = new java.util.Date();
29
      final LogElement le = new LogElement(todaysDate, sMessage, LogElement.ERROR);
30
      logElements.add(le);
31

    
32
   }
33

    
34

    
35
   public void addError(final Throwable e) {
36

    
37
           m_Logger.warn("", e);
38

    
39
      final StringBuffer sb = new StringBuffer(e.toString());
40
      StackTraceElement[] trace = e.getStackTrace();
41
      for (int i = 0; i < trace.length; i++) {
42
         sb.append("\tat " + trace[i] + "\n");
43
      }
44
      final Throwable ourCause = e.getCause();
45
      sb.append("Caused by: " + this);
46
      if (ourCause != null) {
47
         trace = ourCause.getStackTrace();
48
         for (int i = 0; i < trace.length; i++) {
49
            sb.append("\tat " + trace[i] + "\n");
50
         }
51
      }
52

    
53
      final Date todaysDate = new java.util.Date();
54
      final LogElement le = new LogElement(todaysDate, sb.toString(), e.toString(), LogElement.ERROR);
55
      logElements.add(le);
56

    
57
   }
58

    
59

    
60
   public void addWarning(final String sMessage) {
61

    
62
          m_Logger.warn(sMessage);
63

    
64
      final Date todaysDate = new java.util.Date();
65
      final LogElement le = new LogElement(todaysDate, sMessage, LogElement.WARNING);
66
      logElements.add(le);
67

    
68
   }
69

    
70

    
71
   public void addInfo(final String sMessage) {
72

    
73
           m_Logger.info(sMessage);
74

    
75
      final Date todaysDate = new java.util.Date();
76
      final LogElement le = new LogElement(todaysDate, sMessage, LogElement.INFO);
77
      logElements.add(le);
78

    
79
   }
80

    
81

    
82
   public void close() throws SecurityException {
83
   }
84

    
85

    
86
   public ArrayList<LogElement> getLogElements() {
87

    
88
      return logElements;
89

    
90
   }
91

    
92

    
93
   public void clear() {
94

    
95
      logElements.clear();
96

    
97
   }
98

    
99

    
100
   public void addToLog(final String sMessage,
101
                        final String sType,
102
                        final String sShortMessage) {
103

    
104

    
105
      final Date todaysDate = new java.util.Date();
106
      final LogElement le = new LogElement(todaysDate, sMessage, sShortMessage, sType);
107
      logElements.add(le);
108
      m_Logger.info(le.getAsText());
109

    
110
   }
111

    
112
}