diff --git a/README.md b/README.md index 1f8539d..f78cd83 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ The jar is generated in `build/libs/`. Attach the agent using the `-javaagent` option and provide arguments as comma-separated `key=value` pairs: ```sh -java -javaagent:path/to/flow-agent.jar=target=,out=[,format=binary|jsonl][,optimize=][,ids=] \ +java -javaagent:path/to/flow-agent.jar=target=,out=[,format=binary|jsonl][,optimize=][,ids=][,debug=true] \ -jar your-application.jar ``` @@ -60,6 +60,9 @@ java -javaagent:path/to/flow-agent.jar=target=,out=[,fo * **`ids`** (optional) Path to an existing ID mapping file to reuse. +* **`debug`** (optional) + it enables debug mode, which adds debugging information to the agent logs. + ### Examples Record calls using the default (binary) format: diff --git a/src/main/java/fr/bl/drit/flow/agent/AgentMain.java b/src/main/java/fr/bl/drit/flow/agent/AgentMain.java index 19bf658..2ad4268 100644 --- a/src/main/java/fr/bl/drit/flow/agent/AgentMain.java +++ b/src/main/java/fr/bl/drit/flow/agent/AgentMain.java @@ -91,6 +91,7 @@ private static void init(String agentArgs, Instrumentation inst) { final String outputPath = args.get("out"); final String format = args.getOrDefault("format", "binary"); final String optimizePath = args.get("optimize"); + final boolean debug = args.getOrDefault("debug", "false").equalsIgnoreCase("true"); String mappingPath = args.get("ids"); // can be overwritten if optimize is used if (target.isEmpty()) { @@ -209,9 +210,11 @@ private static void init(String agentArgs, Instrumentation inst) { (builder, typeDescription, classLoader, module, protectionDomain) -> builder.visit(advice.on(methodMatcher))); - // agentBuilder = - // agentBuilder.with(AgentBuilder.Listener.StreamWriting.toSystemOut()); - + // add a listener to print instrumentation events if debug is enabled + if (debug) { + agentBuilder = agentBuilder.with(AgentBuilder.Listener.StreamWriting.toSystemOut()); + } + agentBuilder.installOn(inst); }