1 package org.codehaus.mojo.exec;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.PrintStream;
23 import org.apache.maven.plugin.logging.Log;
24
25
26
27
28 class StreamLog implements Log {
29 static final int DEBUG = 0;
30 static final int INFO = 1;
31 static final int WARN = 2;
32 static final int ERROR = 3;
33
34 private int level = INFO;
35
36 public void setLevel(int level) {
37 if (level < DEBUG || level > ERROR) {
38 throw new IllegalStateException("invalid level: " + level);
39 }
40 this.level = level;
41 }
42
43 private final PrintStream s;
44
45 StreamLog(PrintStream s) {
46 this.s = s;
47 }
48
49 public void debug(CharSequence content) {
50 if (isDebugEnabled()) {
51 s.println(content);
52 }
53 }
54
55 public void debug(CharSequence content, Throwable error) {
56 if (isDebugEnabled()) {
57 s.println(content);
58 }
59 }
60
61 public void debug(Throwable error) {
62 if (isDebugEnabled()) {
63 error.printStackTrace(s);
64 }
65 }
66
67 public void error(CharSequence content) {
68 if (isErrorEnabled()) {
69 s.println(content);
70 }
71 }
72
73 public void error(CharSequence content, Throwable error) {
74 error(content);
75 error(error);
76 }
77
78 public void error(Throwable error) {
79 if (isErrorEnabled()) {
80 error.printStackTrace(s);
81 }
82 }
83
84 public void info(CharSequence content) {
85 if (isInfoEnabled()) {
86 s.println(content);
87 }
88 }
89
90 public void info(CharSequence content, Throwable error) {
91 info(content);
92 info(error);
93 }
94
95 public void info(Throwable error) {
96 if (isInfoEnabled()) {
97 error.printStackTrace(s);
98 }
99 }
100
101 public boolean isDebugEnabled() {
102 return level >= DEBUG;
103 }
104
105 public boolean isErrorEnabled() {
106 return level >= ERROR;
107 }
108
109 public boolean isInfoEnabled() {
110 return level >= INFO;
111 }
112
113 public boolean isWarnEnabled() {
114 return level >= WARN;
115 }
116
117 public void warn(CharSequence content) {
118 if (isWarnEnabled()) {
119 s.println(content);
120 }
121 }
122
123 public void warn(CharSequence content, Throwable error) {
124 warn(content);
125 warn(error);
126 }
127
128 public void warn(Throwable error) {
129 if (isWarnEnabled()) {
130 error.printStackTrace(s);
131 }
132 }
133 }