From 4d1481ed38e238e2e39d37775cb8cd86150bd04e Mon Sep 17 00:00:00 2001 From: radhika Date: Tue, 29 Apr 2014 13:28:32 -0400 Subject: [PATCH] 2525: Use log4j for logging from java SDK --- sdk/java/.classpath | 1 + sdk/java/pom.xml | 16 ++++- .../java/org/arvados/sdk/java/Arvados.java | 61 +++++++++++-------- sdk/java/src/main/resources/log4j.properties | 11 ++++ sdk/java/src/test/resources/create_user.json | 1 + .../src/test/resources/first_pipeline.json | 16 +++++ 6 files changed, 80 insertions(+), 26 deletions(-) create mode 100644 sdk/java/src/main/resources/log4j.properties create mode 100644 sdk/java/src/test/resources/create_user.json create mode 100644 sdk/java/src/test/resources/first_pipeline.json diff --git a/sdk/java/.classpath b/sdk/java/.classpath index 249af5fb37..30d56f1d4a 100644 --- a/sdk/java/.classpath +++ b/sdk/java/.classpath @@ -20,6 +20,7 @@ + diff --git a/sdk/java/pom.xml b/sdk/java/pom.xml index a8df534b5f..5acbfc678d 100644 --- a/sdk/java/pom.xml +++ b/sdk/java/pom.xml @@ -34,7 +34,12 @@ guava r05 - + + log4j + log4j + 1.2.16 + + junit junit @@ -88,8 +93,17 @@ + + src/main/resources + ${basedir}/target + + log4j.properties + + true + src/test/resources + true diff --git a/sdk/java/src/main/java/org/arvados/sdk/java/Arvados.java b/sdk/java/src/main/java/org/arvados/sdk/java/Arvados.java index 69bb623f0c..81615bdaca 100644 --- a/sdk/java/src/main/java/org/arvados/sdk/java/Arvados.java +++ b/sdk/java/src/main/java/org/arvados/sdk/java/Arvados.java @@ -29,6 +29,7 @@ import java.util.List; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.apache.log4j.Logger; public class Arvados { // HttpTransport and JsonFactory are thread-safe. So, use global instances. @@ -43,6 +44,8 @@ public class Arvados { private static String ARVADOS_ROOT_URL; + private static final Logger logger = Logger.getLogger(Arvados.class); + public static void main(String[] args) throws Exception { if (args.length == 0) { showMainHelp(); @@ -60,7 +63,7 @@ public class Arvados { Arvados arv = new Arvados(args[1]); String response = arv.call(params); - System.out.println (response); + logger.debug(response); } else if (command.equals("discover")) { List params = Arrays.asList(args); @@ -82,16 +85,21 @@ public class Arvados { } else { String helpCommand = args[1]; if (helpCommand.equals("call")) { - System.out.println("Usage: Arvados call methodName [parameters]"); - System.out.println(); - System.out.println("Examples:"); - System.out.println(" Arvados call arvados v1 users.list"); - System.out.println(" Arvados call arvados v1 users.get "); - System.out.println(" Arvados call arvados v1 pipeline_instances.list"); + StringBuffer buffer = new StringBuffer(); + buffer.append("\nUsage: Arvados call methodName [parameters]"); + buffer.append("\nExamples:"); + buffer.append("\n Arvados call arvados v1 users.list"); + buffer.append("\n Arvados call arvados v1 users.get "); + buffer.append("\n Arvados call arvados v1 pipeline_instances.list"); + logger.debug(buffer.toString()); + System.out.println(buffer.toString()); } else if (helpCommand.equals("discover")) { - System.out.println("Usage"); - System.out.println("Examples:"); - System.out.println(" Arvados discover arvados v1"); + StringBuffer buffer = new StringBuffer(); + buffer.append("\nUsage"); + buffer.append("\nExamples:"); + buffer.append("\n Arvados discover arvados v1"); + logger.debug(buffer.toString()); + System.out.println(buffer.toString()); } else { error(null, "unknown command: " + helpCommand); } @@ -99,18 +107,20 @@ public class Arvados { } protected static void showMainHelp() { - System.out.println("arvados"); - System.out.println(); - System.out.println("For more help on a specific command, type one of:"); - System.out.println(); - System.out.println(" Arvados help call"); - System.out.println(" Arvados help discover"); + StringBuffer buffer = new StringBuffer(); + buffer.append("\narvados"); + buffer.append("\nFor more help on a specific command, type one of:"); + buffer.append("\n Arvados help call"); + buffer.append("\n Arvados help discover"); + logger.debug(buffer.toString()); + System.out.println(buffer.toString()); } private static void error(String command, String detail) throws Exception { String errorDetail = "ERROR: " + detail + "For help, type: Arvados" + (command == null ? "" : " help " + command); + logger.equals(errorDetail); throw new Exception(errorDetail); } @@ -160,26 +170,27 @@ public class Arvados { // display method details Collections.sort(result); + StringBuffer buffer = new StringBuffer(); for (MethodDetails methodDetail : result) { - System.out.println(); - System.out.print("Arvados call " + params.get(1) + " " + params.get(2) + " " + methodDetail.name); + buffer.append("\nArvados call " + params.get(1) + " " + params.get(2) + " " + methodDetail.name); for (String param : methodDetail.requiredParameters) { - System.out.print(" <" + param + ">"); + buffer.append(" <" + param + ">"); } if (methodDetail.hasContent) { - System.out.print(" contentFile"); + buffer.append(" contentFile"); } if (methodDetail.optionalParameters.isEmpty() && !methodDetail.hasContent) { - System.out.println(); + buffer.append("\n"); } else { - System.out.println(" [optional parameters...]"); - System.out.println(" --contentType (default is \"application/json\")"); + buffer.append("\n [optional parameters...]"); + buffer.append("\n --contentType (default is \"application/json\")"); for (String param : methodDetail.optionalParameters) { - System.out.println(" --" + param + " "); + buffer.append("\n --" + param + " "); } } } - + logger.debug(buffer.toString()); + return (restDescription); } diff --git a/sdk/java/src/main/resources/log4j.properties b/sdk/java/src/main/resources/log4j.properties new file mode 100644 index 0000000000..aa336eb0ba --- /dev/null +++ b/sdk/java/src/main/resources/log4j.properties @@ -0,0 +1,11 @@ +# To change log location, change log4j.appender.fileAppender.File + +log4j.rootLogger=DEBUG, fileAppender + +log4j.appender.fileAppender=org.apache.log4j.RollingFileAppender +log4j.appender.fileAppender.File=${basedir}/log/arvados_sdk_java.log +log4j.appender.fileAppender.Append=true +log4j.appender.file.MaxFileSize=10MB +log4j.appender.file.MaxBackupIndex=10 +log4j.appender.fileAppender.layout=org.apache.log4j.PatternLayout +log4j.appender.fileAppender.layout.ConversionPattern=[%t] %-5p %c %x - %m%n diff --git a/sdk/java/src/test/resources/create_user.json b/sdk/java/src/test/resources/create_user.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/sdk/java/src/test/resources/create_user.json @@ -0,0 +1 @@ +{} diff --git a/sdk/java/src/test/resources/first_pipeline.json b/sdk/java/src/test/resources/first_pipeline.json new file mode 100644 index 0000000000..3caa972466 --- /dev/null +++ b/sdk/java/src/test/resources/first_pipeline.json @@ -0,0 +1,16 @@ +{ + "name":"first pipeline", + "components":{ + "do_hash":{ + "script":"hash.py", + "script_parameters":{ + "input":{ + "required": true, + "dataclass": "Collection" + } + }, + "script_version":"master", + "output_is_persistent":true + } + } +} -- 2.30.2