Skip to content

Commit 97c73dd

Browse files
authored
Merge pull request #6999 from DataDog/cecile/tracer_debugfile_continue
Add tracer log file to tracer flare if datadog.slf4j.simpleLogger.logFile is defined
2 parents ede722d + a00b66f commit 97c73dd

File tree

1 file changed

+12
-10
lines changed

1 file changed

+12
-10
lines changed

dd-trace-core/src/main/java/datadog/trace/core/flare/TracerFlareService.java

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@
1616
import datadog.trace.util.AgentTaskScheduler.Scheduled;
1717
import datadog.trace.util.Strings;
1818
import java.io.ByteArrayOutputStream;
19+
import java.io.File;
1920
import java.io.IOException;
21+
import java.io.RandomAccessFile;
2022
import java.lang.management.ManagementFactory;
2123
import java.lang.management.RuntimeMXBean;
2224
import java.lang.management.ThreadInfo;
@@ -293,17 +295,17 @@ private void addLogs(ZipOutputStream zip) throws IOException {
293295
try {
294296
long size = Files.size(path);
295297
if (size > MAX_LOGFILE_SIZE_BYTES) {
296-
TracerFlare.addText(
297-
zip,
298-
"tracer.log",
299-
"Can't add tracer log file to the flare due to its size: "
300-
+ size
301-
+ "."
302-
+ "Max Size is "
303-
+ MAX_LOGFILE_SIZE_MB
304-
+ " MB.");
298+
int maxSizeOfSplit = MAX_LOGFILE_SIZE_BYTES / 2;
299+
File originalFile = new File(path.toString());
300+
try (RandomAccessFile ras = new RandomAccessFile(originalFile, "r")) {
301+
final byte[] buffer = new byte[maxSizeOfSplit];
302+
ras.readFully(buffer);
303+
TracerFlare.addBinary(zip, "tracer_begin.log", buffer);
304+
ras.seek(size - maxSizeOfSplit);
305+
ras.readFully(buffer);
306+
TracerFlare.addBinary(zip, "tracer_end.log", buffer);
307+
}
305308
} else {
306-
307309
TracerFlare.addBinary(zip, "tracer.log", readAllBytes(path));
308310
}
309311
} catch (Throwable e) {

0 commit comments

Comments
 (0)