|
1 | 1 | package dev.aikido.agent; |
2 | 2 |
|
| 3 | +import dev.aikido.agent_api.helpers.logging.LogManager; |
| 4 | +import dev.aikido.agent_api.helpers.logging.Logger; |
3 | 5 | import net.bytebuddy.ByteBuddy; |
4 | 6 | import net.bytebuddy.agent.builder.AgentBuilder; |
5 | 7 | import net.bytebuddy.dynamic.VisibilityBridgeStrategy; |
|
8 | 10 | import net.bytebuddy.matcher.ElementMatchers; |
9 | 11 |
|
10 | 12 | public final class ByteBuddyInitializer { |
11 | | - |
| 13 | + private static final Logger logger = LogManager.getLogger(ByteBuddyInitializer.class); |
12 | 14 | public static AgentBuilder createAgentBuilder() { |
13 | | - return createAgentBuilder(false); // Set debug mode to false by default |
| 15 | + // byte buddy debug mode should be linked to the trace logs, since we rarely want to inspect them. |
| 16 | + boolean debugMode = logger.logsTraceLogs(); |
| 17 | + return createAgentBuilder(debugMode); |
14 | 18 | } |
15 | 19 |
|
16 | 20 | public static AgentBuilder createAgentBuilder(boolean debugMode) { |
| 21 | + logger.debug("Creating new ByteBuddy agent, with debugMode: %s", debugMode); |
17 | 22 | AgentBuilder agentBuilder = new AgentBuilder.Default( |
18 | 23 | // default method graph compiler inspects the class hierarchy, we don't need it, so |
19 | 24 | // we use a simpler and faster strategy instead |
@@ -42,6 +47,7 @@ public static AgentBuilder createAgentBuilder(boolean debugMode) { |
42 | 47 |
|
43 | 48 | agentBuilder = agentBuilder.with(AgentBuilder.TypeStrategy.Default.DECORATE); |
44 | 49 |
|
| 50 | + logger.trace("Finished creating new ByteBuddy agent: %s", agentBuilder); |
45 | 51 | return agentBuilder; |
46 | 52 | } |
47 | 53 | } |
0 commit comments