Skip to content

Commit a00b66f

Browse files
author
Cecile Terpin
committed
use RandomAccessFile & only one buffer
1 parent 61c8566 commit a00b66f

File tree

1 file changed

+11
-13
lines changed

1 file changed

+11
-13
lines changed

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

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +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;
20-
import java.io.InputStream;
21+
import java.io.RandomAccessFile;
2122
import java.lang.management.ManagementFactory;
2223
import java.lang.management.RuntimeMXBean;
2324
import java.lang.management.ThreadInfo;
@@ -294,18 +295,15 @@ private void addLogs(ZipOutputStream zip) throws IOException {
294295
try {
295296
long size = Files.size(path);
296297
if (size > MAX_LOGFILE_SIZE_BYTES) {
297-
try (InputStream in = Files.newInputStream(path)) {
298-
final byte[] bufferBeg = new byte[MAX_LOGFILE_SIZE_BYTES / 2];
299-
int dataReadBeg = in.read(bufferBeg);
300-
long skipped = in.skip(size - MAX_LOGFILE_SIZE_BYTES);
301-
final byte[] bufferEnd = new byte[MAX_LOGFILE_SIZE_BYTES - dataReadBeg];
302-
int dataReadEnd = in.read(bufferEnd);
303-
TracerFlare.addBinary(zip, "tracer_begin.log", bufferBeg);
304-
TracerFlare.addBinary(zip, "tracer_end.log", bufferEnd);
305-
log.debug(
306-
"{} bytes from the log file have been copied. {} have been ignored ",
307-
dataReadBeg + dataReadEnd,
308-
skipped);
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);
309307
}
310308
} else {
311309
TracerFlare.addBinary(zip, "tracer.log", readAllBytes(path));

0 commit comments

Comments
 (0)