Skip to content

Commit ef5b3c8

Browse files
Merge pull request #51 from lwander/use-logger
Use log4j for logging exceptions
2 parents 1ed91b7 + d9b72cc commit ef5b3c8

File tree

9 files changed

+59
-58
lines changed

9 files changed

+59
-58
lines changed

examples/src/main/java/io/kubernetes/client/examples/Example.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import io.kubernetes.client.util.Config;
2222

2323
import java.io.IOException;
24+
import java.util.logging.Logger;
2425

2526
/**
2627
* A simple example of how to use the Java API

util/pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,11 @@
3939
<artifactId>guava</artifactId>
4040
<version>22.0</version>
4141
</dependency>
42+
<dependency>
43+
<groupId>log4j</groupId>
44+
<artifactId>log4j</artifactId>
45+
<version>1.2.17</version>
46+
</dependency>
4247
<!-- test dependencies -->
4348
<dependency>
4449
<groupId>junit</groupId>
@@ -85,5 +90,6 @@
8590
<java.version>1.7</java.version>
8691
<maven.compiler.source>${java.version}</maven.compiler.source>
8792
<maven.compiler.target>${java.version}</maven.compiler.target>
93+
<slf4jVersion>1.7.7</slf4jVersion>
8894
</properties>
8995
</project>

util/src/main/java/io/kubernetes/client/Exec.java

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,18 @@
11
package io.kubernetes.client;
22

3-
import io.kubernetes.client.Configuration;
43
import io.kubernetes.client.models.V1Pod;
54
import io.kubernetes.client.util.WebSockets;
5+
import org.apache.commons.lang.StringUtils;
6+
import org.apache.log4j.Logger;
67

7-
import java.io.ByteArrayInputStream;
88
import java.io.Closeable;
9-
import java.io.InputStream;
109
import java.io.IOException;
10+
import java.io.InputStream;
1111
import java.io.OutputStream;
1212
import java.io.PipedInputStream;
1313
import java.io.PipedOutputStream;
1414
import java.io.Reader;
1515

16-
import org.apache.commons.lang.StringUtils;
17-
1816
public class Exec {
1917
private ApiClient apiClient;
2018

@@ -144,7 +142,9 @@ private static class ExecProcess extends Process implements WebSockets.SocketLis
144142
private InputStream input;
145143
private int statusCode;
146144
private Closeable closer;
147-
145+
146+
private static final Logger log = Logger.getLogger(ExecProcess.class);
147+
148148
public ExecProcess() throws IOException {
149149
this.pipeIn = new PipedInputStream();
150150
this.pipeOut = new PipedOutputStream();
@@ -212,8 +212,7 @@ public void bytesMessage(InputStream in) {
212212
}
213213
out.flush();
214214
} catch (IOException ex) {
215-
// TODO use a logger here.
216-
ex.printStackTrace();
215+
log.error("Failure sending bytes message", ex);
217216
}
218217
}
219218

@@ -230,8 +229,7 @@ public void textMessage(Reader in) {
230229
}
231230
out.flush();
232231
} catch (IOException ex) {
233-
// TODO use a logger here
234-
ex.printStackTrace();
232+
log.error("Failure sending text message", ex);
235233
}
236234
}
237235

@@ -242,8 +240,7 @@ public void close() {
242240
pipeOut.close();
243241
output.close();
244242
} catch (IOException ex) {
245-
// TODO use a logger here
246-
ex.printStackTrace();
243+
log.error("Failure closing exec process", ex);
247244
}
248245
// TODO: get status code here
249246
synchronized(this) {

util/src/main/java/io/kubernetes/client/util/Config.java

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,19 @@
1313
package io.kubernetes.client.util;
1414

1515
import io.kubernetes.client.ApiClient;
16+
import org.apache.log4j.Logger;
1617

18+
import javax.net.ssl.KeyManager;
1719
import java.io.BufferedReader;
1820
import java.io.File;
19-
import java.io.FileReader;
2021
import java.io.FileInputStream;
2122
import java.io.FileNotFoundException;
23+
import java.io.FileReader;
24+
import java.io.IOException;
2225
import java.io.InputStream;
2326
import java.io.InputStreamReader;
24-
import java.io.IOException;
2527
import java.io.Reader;
2628

27-
import javax.net.ssl.KeyManager;
28-
2929
public class Config {
3030
public static final String SERVICEACCOUNT_ROOT =
3131
"/var/run/secrets/kubernetes.io/serviceaccount";
@@ -39,6 +39,8 @@ public class Config {
3939
// The last resort host to try
4040
public static final String DEFAULT_FALLBACK_HOST = "http://localhost:8080";
4141

42+
private static final Logger log = Logger.getLogger(Config.class);
43+
4244
public static ApiClient fromCluster() throws IOException {
4345
String host = System.getenv(ENV_SERVICE_HOST);
4446
String port = System.getenv(ENV_SERVICE_PORT);
@@ -97,6 +99,7 @@ public static ApiClient fromConfig(InputStream stream) {
9799
}
98100

99101
public static ApiClient fromConfig(Reader input) {
102+
100103
KubeConfig config = KubeConfig.loadKubeConfig(input);
101104
ApiClient client = new ApiClient();
102105
client.setBasePath(config.getServer());
@@ -111,7 +114,7 @@ public static ApiClient fromConfig(Reader input) {
111114
null, null);
112115
client.setKeyManagers(mgrs);
113116
} catch (Exception ex) {
114-
ex.printStackTrace();
117+
log.error("Failed to invoke build key managers", ex);
115118
}
116119

117120
if (config.verifySSL()) {
@@ -124,8 +127,8 @@ public static ApiClient fromConfig(Reader input) {
124127
if (caCert != null || caCertFile != null) {
125128
try {
126129
client.setSslCaCert(SSLUtils.getInputStreamFromDataOrFile(caCert, caCertFile));
127-
} catch (FileNotFoundException e) {
128-
e.printStackTrace();
130+
} catch (FileNotFoundException ex) {
131+
log.error("Failed to find CA Cert file", ex);
129132
}
130133
}
131134
} else {

util/src/main/java/io/kubernetes/client/util/KubeConfig.java

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,24 +12,22 @@
1212
*/
1313
package io.kubernetes.client.util;
1414

15-
import com.google.common.io.CharStreams;
15+
import io.kubernetes.client.util.authenticators.Authenticator;
16+
import org.apache.log4j.Logger;
17+
import org.yaml.snakeyaml.Yaml;
18+
import org.yaml.snakeyaml.constructor.SafeConstructor;
19+
1620
import java.io.File;
1721
import java.io.FileNotFoundException;
1822
import java.io.FileReader;
1923
import java.io.IOException;
2024
import java.io.Reader;
21-
import java.nio.file.Files;
2225
import java.nio.file.FileSystems;
26+
import java.nio.file.Files;
2327
import java.util.ArrayList;
24-
import java.util.Date;
2528
import java.util.HashMap;
2629
import java.util.Map;
2730

28-
import org.yaml.snakeyaml.Yaml;
29-
import org.yaml.snakeyaml.constructor.SafeConstructor;
30-
31-
import io.kubernetes.client.util.authenticators.Authenticator;
32-
3331
/**
3432
* KubeConfig represents a kubernetes client configuration
3533
*/
@@ -51,6 +49,8 @@ public class KubeConfig {
5149
Map<String, Object> currentCluster;
5250
Map<String, Object> currentUser;
5351

52+
private static final Logger log = Logger.getLogger(KubeConfig.class);
53+
5454
public static void registerAuthenticator(Authenticator auth) {
5555
synchronized (authenticators) {
5656
authenticators.put(auth.getName(), auth);
@@ -190,8 +190,7 @@ public String getAccessToken() {
190190
byte[] data = Files.readAllBytes(FileSystems.getDefault().getPath(tokenFile));
191191
return new String(data, "UTF-8");
192192
} catch (IOException ex) {
193-
// TODO use logger here
194-
ex.printStackTrace();
193+
log.error("Failed to read token file", ex);
195194
}
196195
}
197196
return null;

util/src/main/java/io/kubernetes/client/util/SSLUtils.java

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@
2121

2222
package io.kubernetes.client.util;
2323

24+
import org.apache.commons.codec.binary.Base64;
25+
26+
import javax.net.ssl.KeyManager;
27+
import javax.net.ssl.KeyManagerFactory;
2428
import java.io.BufferedReader;
2529
import java.io.ByteArrayInputStream;
2630
import java.io.File;
@@ -44,11 +48,6 @@
4448
import java.security.spec.PKCS8EncodedKeySpec;
4549
import java.security.spec.RSAPrivateCrtKeySpec;
4650

47-
import javax.net.ssl.KeyManager;
48-
import javax.net.ssl.KeyManagerFactory;
49-
50-
import org.apache.commons.codec.binary.Base64;
51-
5251
public class SSLUtils {
5352
public static boolean isNotNullOrEmpty(String val) {
5453
return val != null && val.length() > 0;
@@ -258,17 +257,9 @@ private static void loadDefaultKeyStoreFile(KeyStore keyStore, char[] keyStorePa
258257

259258
private static boolean loadDefaultStoreFile(KeyStore keyStore, File fileToLoad, char[] passphrase)
260259
throws CertificateException, NoSuchAlgorithmException, IOException {
261-
262-
String notLoadedMessage = "There is a problem with reading default keystore/truststore file %s with the passphrase %s "
263-
+ "- the file won't be loaded. The reason is: %s";
264-
265260
if (fileToLoad.exists() && fileToLoad.isFile() && fileToLoad.length() > 0) {
266-
//try {
267261
keyStore.load(new FileInputStream(fileToLoad), passphrase);
268262
return true;
269-
//} catch (Exception e) {
270-
// e.printStackTrace();
271-
//}
272263
}
273264
return false;
274265
}

util/src/main/java/io/kubernetes/client/util/WebSockets.java

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,35 +12,29 @@
1212
*/
1313
package io.kubernetes.client.util;
1414

15-
import io.kubernetes.client.ApiClient;
16-
import io.kubernetes.client.ApiException;
17-
import io.kubernetes.client.Pair;
18-
import io.kubernetes.client.util.Config;
19-
2015
import com.google.common.net.HttpHeaders;
21-
22-
import com.squareup.okhttp.MediaType;
2316
import com.squareup.okhttp.Request;
2417
import com.squareup.okhttp.Response;
2518
import com.squareup.okhttp.ResponseBody;
2619
import com.squareup.okhttp.ws.WebSocket;
2720
import com.squareup.okhttp.ws.WebSocketCall;
2821
import com.squareup.okhttp.ws.WebSocketListener;
22+
import io.kubernetes.client.ApiClient;
23+
import io.kubernetes.client.ApiException;
24+
import io.kubernetes.client.Pair;
2925
import okio.Buffer;
26+
import org.apache.log4j.Logger;
3027

31-
import static com.squareup.okhttp.ws.WebSocket.BINARY;
32-
import static com.squareup.okhttp.ws.WebSocket.TEXT;
33-
34-
import java.io.BufferedReader;
3528
import java.io.Closeable;
3629
import java.io.IOException;
3730
import java.io.InputStream;
38-
import java.io.InputStreamReader;
39-
import java.io.OutputStream;
4031
import java.io.Reader;
4132
import java.util.ArrayList;
4233
import java.util.HashMap;
4334

35+
import static com.squareup.okhttp.ws.WebSocket.BINARY;
36+
import static com.squareup.okhttp.ws.WebSocket.TEXT;
37+
4438
public class WebSockets {
4539
public static final String V4_STREAM_PROTOCOL = "v4.channel.k8s.io";
4640
public static final String V3_STREAM_PROTOCOL = "v3.channel.k8s.io";
@@ -49,6 +43,8 @@ public class WebSockets {
4943
public static final String STREAM_PROTOCOL_HEADER = "X-Stream-Protocol-Version";
5044
public static final String SPDY_3_1 = "SPDY/3.1";
5145

46+
private static final Logger log = Logger.getLogger(WebSockets.class);
47+
5248
/**
5349
* A simple interface for a listener on a web socket
5450
*/
@@ -110,7 +106,7 @@ public void close() {
110106
try {
111107
webSocket.close(200, "User closed connection");
112108
} catch (IOException ex) {
113-
ex.printStackTrace();
109+
log.error("Failure closing websocket", ex);
114110
}
115111
}
116112
});

util/src/main/java/io/kubernetes/client/util/authenticators/GCPAuthenticator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@
1212
*/
1313
package io.kubernetes.client.util.authenticators;
1414

15+
import io.kubernetes.client.util.KubeConfig;
16+
1517
import java.util.Date;
1618
import java.util.Map;
1719

18-
import io.kubernetes.client.util.KubeConfig;
19-
2020
/**
2121
* The Authenticator interface represents a plugin that can handle
2222
* a specific type of authentication information (e.g. 'gcp')
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Root logger option
2+
log4j.rootLogger=INFO, stdout
3+
4+
# Redirect log messages to console
5+
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
6+
log4j.appender.stdout.Target=System.out
7+
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
8+
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

0 commit comments

Comments
 (0)