Configure system logger to log timestamp

Also add an 'identifying marker' to tracing log lines so we could
potentially automatically parse them.
This commit is contained in:
Nikolay Martynov 2019-06-17 12:56:19 -04:00
parent 72cad287ff
commit a9a623d1dc
1 changed files with 24 additions and 1 deletions

View File

@ -15,6 +15,16 @@ import java.util.jar.JarFile;
/** Entry point for initializing the agent. */ /** Entry point for initializing the agent. */
public class TracingAgent { public class TracingAgent {
private static final String SIMPLE_LOGGER_SHOW_DATE_TIME_PROPERTY =
"datadog.slf4j.simpleLogger.showDateTime";
private static final String SIMPLE_LOGGER_DATE_TIME_FORMAT_PROPERTY =
"datadog.slf4j.simpleLogger.dateTimeFormat";
private static final String SIMPLE_LOGGER_DATE_TIME_FORMAT_DEFAULT =
"'[dd.tracing.agent - 'yyyy-MM-dd HH:mm:ss:SSS Z']'";
private static final String SIMPLE_LOGGER_DEFAULT_LOG_LEVEL_PROPERTY =
"datadog.slf4j.simpleLogger.defaultLogLevel";
// fields must be managed under class lock // fields must be managed under class lock
private static ClassLoader AGENT_CLASSLOADER = null; private static ClassLoader AGENT_CLASSLOADER = null;
private static ClassLoader JMXFETCH_CLASSLOADER = null; private static ClassLoader JMXFETCH_CLASSLOADER = null;
@ -28,6 +38,7 @@ public class TracingAgent {
public static void agentmain(final String agentArgs, final Instrumentation inst) public static void agentmain(final String agentArgs, final Instrumentation inst)
throws Exception { throws Exception {
configureLogger();
startDatadogAgent(agentArgs, inst); startDatadogAgent(agentArgs, inst);
if (isAppUsingCustomLogManager()) { if (isAppUsingCustomLogManager()) {
System.out.println("Custom logger detected. Delaying JMXFetch initialization."); System.out.println("Custom logger detected. Delaying JMXFetch initialization.");
@ -113,6 +124,18 @@ public class TracingAgent {
} }
} }
private static void configureLogger() {
setSystemPropertyDefault(SIMPLE_LOGGER_SHOW_DATE_TIME_PROPERTY, "true");
setSystemPropertyDefault(
SIMPLE_LOGGER_DATE_TIME_FORMAT_PROPERTY, SIMPLE_LOGGER_DATE_TIME_FORMAT_DEFAULT);
}
private static void setSystemPropertyDefault(final String property, final String value) {
if (System.getProperty(property) == null) {
System.setProperty(property, value);
}
}
/** /**
* Extract embeded jars out of the dd-java-agent to a temporary location. * Extract embeded jars out of the dd-java-agent to a temporary location.
* *
@ -228,7 +251,7 @@ public class TracingAgent {
*/ */
private static boolean isAppUsingCustomLogManager() { private static boolean isAppUsingCustomLogManager() {
final boolean debugEnabled = final boolean debugEnabled =
"debug".equalsIgnoreCase(System.getProperty("datadog.slf4j.simpleLogger.defaultLogLevel")); "debug".equalsIgnoreCase(System.getProperty(SIMPLE_LOGGER_DEFAULT_LOG_LEVEL_PROPERTY));
final String tracerCustomLogManSysprop = "dd.app.customlogmanager"; final String tracerCustomLogManSysprop = "dd.app.customlogmanager";
final String customLogManagerProp = System.getProperty(tracerCustomLogManSysprop); final String customLogManagerProp = System.getProperty(tracerCustomLogManSysprop);