[ 
https://issues.apache.org/jira/browse/LOG4J2-1305?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15177053#comment-15177053
 ] 

Matt Sicker commented on LOG4J2-1305:
-------------------------------------

Markers are hierarchical though, that's only a linear representation.

> Binary Layout
> -------------
>
>                 Key: LOG4J2-1305
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-1305
>             Project: Log4j 2
>          Issue Type: New Feature
>          Components: Layouts
>            Reporter: Remko Popma
>
> Logging in a binary format instead of in text can give large performance 
> improvements. Text-based logging formats are supported by layouts like 
> PatternLayout, and performance investigations like done in LOG4J2-930 suggest 
> that it may be difficult to achieve good performance when logging text. 
> Logging text means going from a LogEvent object to formatted text, and then 
> converting this text to bytes. A different approach would be to convert the 
> LogEvent to a binary representation directly without creating a text 
> representation first. This may make fast synchronous logging possible, 
> although that would additionally require a lock-free appender (LOG4J2-928).
> This proposes a simple BinaryLayout, where each LogEvent is logged in a 
> binary record like this:
> ||Offset||Type||Description||
> |0|long|TimeMillis|
> |8|long|NanoTime|
> |16|int|Level|
> |20|int|Logger name index - string value in separate file|
> |24|int|Thread name index - string value in separate file|
> |28|long|Thread ID|
> |36|short|Marker count|
> |38|int|marker name index - string value in separate file ... (below offset 
> assumes only one marker)|
> |42|int|Message length|
> |46|int|Message type|
> |50|byte[]|Message data - below offset assumes 10 bytes of message data|
> |60|int| Throwable data length|
> |64|byte[]|Throwable data - below offset assumes 10 bytes of Throwable data|
> |74|int|ThreadContext key/value pair count|
> |78|int|ThreadContext key index - string value in separate file|
> |82|int|ThreadContext value index - string value in separate file|



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to