@Test public void testNanoTimeIsNotSerialized1() throws Exception { final LogEvent event1 = Log4jLogEvent.newBuilder() // .setLoggerName(this.getClass().getName()) // .setLoggerFqcn("org.apache.logging.log4j.core.Logger") // .setLevel(Level.INFO) // .setMessage(new SimpleMessage("Hello, world!")) // .setThreadName("this must be initialized or the test fails") // .setNanoTime(12345678L) // .build(); final LogEvent copy = new Log4jLogEvent.Builder(event1).build(); final ByteArrayOutputStream baos = new ByteArrayOutputStream(); final ObjectOutputStream oos = new ObjectOutputStream(baos); oos.writeObject(event1); final ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); final ObjectInputStream ois = new FilteredObjectInputStream(bais); final LogEvent actual = (LogEvent) ois.readObject(); assertNotEquals("Different event: nanoTime", copy, actual); assertNotEquals("Different nanoTime", copy.getNanoTime(), actual.getNanoTime()); assertEquals("deserialized nanoTime is zero", 0, actual.getNanoTime()); }
assertSame(marker, e2.getMarker()); assertSame(message, e2.getMessage()); assertEquals(1234567890L, e2.getNanoTime());
/** * {@inheritDoc} */ @Override public void format(final LogEvent event, final StringBuilder output) { output.append(event.getNanoTime()); } }
assertSame(marker, event2.getMarker()); assertSame(message, event2.getMessage()); assertEquals(1234567890L, event2.getNanoTime()); assertSame(stackTraceElement, event2.getSource()); assertSame(threadName, event2.getThreadName());
/** * Returns the value of the running Java Virtual Machine's high-resolution time source when this event was created, * or a dummy value if it is known that this value will not be used downstream. * * @return the JVM nano time */ @Override @Basic public long getNanoTime() { return this.getWrappedEvent().getNanoTime(); }
@Override public String toSerializable(LogEvent le) { LogEntryBuilderFactory.LogEntryBuilder builder = logEntryBuilderFactory.getBuilder() .withLevel(le.getLevel().name()) .withMessage(le.getMessage().getFormattedMessage()) .withNameSpace(le.getLoggerName()) .withTimeStamp(le.getNanoTime()) .withMeta("thread", ""+le.getThreadId()); Optional.ofNullable(le.getThrown()) .ifPresent( thrown -> builder.withMeta( "exception", String.join( "\n", Throwables.toStringList(thrown) .toArray(new String[0]) ) ) ); return builder.build(); }
public LogEventProxy(final LogEvent event, final boolean includeLocation) { this.loggerFQCN = event.getLoggerFqcn(); this.marker = event.getMarker(); this.level = event.getLevel(); this.loggerName = event.getLoggerName(); final Message temp = event.getMessage(); message = temp instanceof ReusableMessage ? memento((ReusableMessage) temp) : temp; this.timeMillis = event.getTimeMillis(); this.thrown = event.getThrown(); this.thrownProxy = event.getThrownProxy(); this.contextData = memento(event.getContextData()); this.contextStack = event.getContextStack(); this.source = includeLocation ? event.getSource() : null; this.threadId = event.getThreadId(); this.threadName = event.getThreadName(); this.threadPriority = event.getThreadPriority(); this.isLocationRequired = includeLocation; this.isEndOfBatch = event.isEndOfBatch(); this.nanoTime = event.getNanoTime(); }
@Override public String toSerializable(final LogEvent event) { final StringBuilder buffer = getStringBuilder(); final CSVFormat format = getFormat(); try { format.print(event.getNanoTime(), buffer, true); format.print(event.getTimeMillis(), buffer, false); format.print(event.getLevel(), buffer, false); format.print(event.getThreadId(), buffer, false); format.print(event.getThreadName(), buffer, false); format.print(event.getThreadPriority(), buffer, false); format.print(event.getMessage().getFormattedMessage(), buffer, false); format.print(event.getLoggerFqcn(), buffer, false); format.print(event.getLoggerName(), buffer, false); format.print(event.getMarker(), buffer, false); format.print(event.getThrownProxy(), buffer, false); format.print(event.getSource(), buffer, false); format.print(event.getContextData(), buffer, false); format.print(event.getContextStack(), buffer, false); format.println(buffer); return buffer.toString(); } catch (final IOException e) { StatusLogger.getLogger().error(event.toString(), e); return format.getCommentMarker() + " " + e; } }
this.includeLocation = other.isIncludeLocation(); this.endOfBatch = other.isEndOfBatch(); this.nanoTime = other.getNanoTime();
this.endOfBatch = event.isEndOfBatch(); this.includeLocation = event.isIncludeLocation(); this.nanoTime = event.getNanoTime(); setMessage(event.getMessage());