diff --git a/README.md b/README.md
index fb6a7e3..ab3748f 100644
--- a/README.md
+++ b/README.md
@@ -93,7 +93,8 @@ This lib can also get the metrics from MBean Platform instead of jolokia. In ord
- The parameters names and functions are exactly as described in Environment Variables section. (Except no need to specify JOLOKIA_URL of course)
- The javaagent.jar is an "Uber-Jar" that shades all of its dependencies inside, to prevent class collisions
- For example: java -javaagent:jmx2graphite.jar=GRAPHITE_HOSTNAME=graphite.example.com,SERVICE_NAME=PROD.MyAwesomeCategory example.jar
-
+- To configure Log Level add the configuration LOG_LEVEL=[any of OFF, FATAL, ERROR, WARN, INFO, DEBUG, TRACE, ALL]
+
# How to expose JMX Metrics using Jolokia Agent
diff --git a/pom.xml b/pom.xml
index 726e211..e9b7b42 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0
io.logz
jmx2graphite
- 1.3.1
+ 1.3.2
diff --git a/src/main/java/io/logz/jmx2graphite/Jmx2Graphite.java b/src/main/java/io/logz/jmx2graphite/Jmx2Graphite.java
index 15afb08..06ea6e2 100644
--- a/src/main/java/io/logz/jmx2graphite/Jmx2Graphite.java
+++ b/src/main/java/io/logz/jmx2graphite/Jmx2Graphite.java
@@ -1,6 +1,11 @@
package io.logz.jmx2graphite;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.core.LoggerContext;
+import org.apache.logging.log4j.core.config.Configuration;
+import org.apache.logging.log4j.core.config.LoggerConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -41,6 +46,8 @@ public Jmx2Graphite(Jmx2GraphiteConfiguration conf) {
else {
throw new IllegalConfiguration("Unsupported client type: " + conf.getMetricClientType());
}
+
+ configureLogLevel(conf.getLogLevel());
}
public void run() {
@@ -93,4 +100,12 @@ public void run() {
}
}
}
+
+ private void configureLogLevel (String level) {
+ LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
+ Configuration config = ctx.getConfiguration();
+ LoggerConfig loggerConfig = config.getLoggerConfig(LogManager.ROOT_LOGGER_NAME);
+ loggerConfig.setLevel(Level.valueOf(level));
+ ctx.updateLoggers();
+ }
}
diff --git a/src/main/java/io/logz/jmx2graphite/Jmx2GraphiteConfiguration.java b/src/main/java/io/logz/jmx2graphite/Jmx2GraphiteConfiguration.java
index 5c71cb2..f9235b8 100644
--- a/src/main/java/io/logz/jmx2graphite/Jmx2GraphiteConfiguration.java
+++ b/src/main/java/io/logz/jmx2graphite/Jmx2GraphiteConfiguration.java
@@ -7,6 +7,7 @@
import java.net.URL;
import java.net.UnknownHostException;
import java.util.concurrent.TimeUnit;
+import java.util.logging.Level;
/**
* @author amesika
@@ -33,6 +34,8 @@ public class Jmx2GraphiteConfiguration {
private MetricClientType metricClientType;
private GraphiteProtocol graphiteProtocol;
+ private String logLevel;
+
public GraphiteProtocol getGraphiteProtocol() {
return graphiteProtocol;
}
@@ -101,6 +104,12 @@ else if (config.hasPath("service.poller.mbean-direct")) {
} else {
graphiteWriteTimeoutMs = Math.round(0.7f * TimeUnit.SECONDS.toMillis(metricsPollingIntervalInSeconds));
}
+
+ if(config.hasPath("log.level")) {
+ logLevel = config.getString("log.level");
+ } else {
+ logLevel = Level.INFO.getName();
+ }
}
private GraphiteProtocol getGraphiteProtocol(Config config) {
@@ -191,4 +200,12 @@ public int getGraphiteSocketTimeout() {
public int getGraphiteWriteTimeoutMs() {
return graphiteWriteTimeoutMs;
}
+
+ public String getLogLevel() {
+ return logLevel;
+ }
+
+ public void setLogLevel(String logLevel) {
+ this.logLevel = logLevel;
+ }
}
diff --git a/src/main/java/io/logz/jmx2graphite/Jmx2GraphiteJavaAgent.java b/src/main/java/io/logz/jmx2graphite/Jmx2GraphiteJavaAgent.java
index 78233ab..ec3623f 100644
--- a/src/main/java/io/logz/jmx2graphite/Jmx2GraphiteJavaAgent.java
+++ b/src/main/java/io/logz/jmx2graphite/Jmx2GraphiteJavaAgent.java
@@ -89,6 +89,8 @@ private static String getArgumentConfigurationRepresentation(String key) throws
return "graphite.writeTimeout";
case "GRAPHITE_PROTOCOL":
return "graphite.protocol";
+ case "LOG_LEVEL":
+ return "log.level";
default:
throw new IllegalConfiguration("Unknown configuration option: " + key);
}
diff --git a/src/main/resources/javaagent.conf b/src/main/resources/javaagent.conf
index 7198b77..2f950fd 100644
--- a/src/main/resources/javaagent.conf
+++ b/src/main/resources/javaagent.conf
@@ -22,4 +22,6 @@ graphite {
protocol = ${?GRAPHITE_PROTOCOL}
}
-metricsPollingIntervalInSeconds = ${?INTERVAL_IN_SEC}
\ No newline at end of file
+metricsPollingIntervalInSeconds = ${?INTERVAL_IN_SEC}
+
+logLevel = ${?LOG_LEVEL}
\ No newline at end of file