Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@
import java.util.List;
import java.util.Map;
import java.util.logging.FileHandler;
import java.util.logging.Level;
import java.util.logging.LogManager;
import java.util.logging.LogRecord;

Expand Down Expand Up @@ -143,8 +142,8 @@ private void configure() {
@Override
public boolean isLoggable(LogRecord logRecord) {
// feature switch here
return (fIsEnabled && logRecord != null && super.isLoggable(logRecord)
&& (logRecord.getLevel().intValue() <= Level.FINE.intValue()) && (logRecord instanceof TraceEventLogRecord)); // add
return (fIsEnabled && super.isLoggable(logRecord)
&& (logRecord instanceof TraceEventLogRecord)); // add
}

private boolean addToSnapshot(LogRecord message) {
Expand All @@ -168,14 +167,26 @@ private boolean addToSnapshot(LogRecord message) {
case "E": //$NON-NLS-1$
{
InnerEvent lastEvent = stack.remove(stack.size() - 1);
// top-level trace "segment" for this thread?
if (stack.isEmpty()) {
// some housekeeping before flushing
pidMap.remove(event.getTid());
if (pidMap.isEmpty()) {
// was the last entry for this pid/tid
fStacks.remove(event.getPid());
}

// convert to seconds
double delta = (event.getTs() - lastEvent.getTs()) * 0.000001;
if (delta > fTimeout) {
Deque<InnerEvent> toDrain = fData;
// Start a new in-memory event queue, so we can continue to
// process new events while draining the old queue to disk
fData = new ArrayDeque<>();
if(fAsynchronousDrain) {
drain(fData);
drain(toDrain);
} else {
drainTrace(fData).run();
drainTrace(toDrain).run();
}
}
}
Expand All @@ -189,10 +200,9 @@ private boolean addToSnapshot(LogRecord message) {

@Override
public synchronized void publish(LogRecord record) {
if (record != null) {
if (isLoggable(record)) {
addToSnapshot(record);
}
super.publish(record);
}

private void drain(Deque<InnerEvent> data) {
Expand Down