java.lang.Object
io.jstach.rainbowgum.json.JsonBuffer
- All Implemented Interfaces:
LogEncoder.Buffer,AutoCloseable
A buffer designed for encoding JSON efficiently.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumExtended fields are just fields that have some special prefix for things like GELF and ECS.static enumJSON tokens.Nested classes/interfaces inherited from interface io.jstach.rainbowgum.LogEncoder.Buffer
LogEncoder.Buffer.StringBuilderBuffer -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intA flag to indicate this field is extended which means it will be prefixed withJsonBuffer.ExtendedFieldPrefix. -
Constructor Summary
ConstructorsConstructorDescriptionJsonBuffer(boolean prettyPrint, JsonBuffer.ExtendedFieldPrefix extendedFieldPrefix) Create a JSON buffer. -
Method Summary
Modifier and TypeMethodDescriptionvoidclear()Prepare the buffer for reuse.voidThe appender will call this usually within a lock to transfer content from the buffer to the output.Reusable String buffer for formatted messages.final voidwrite(JsonBuffer.JSONToken token) Writes a JSON token.final intWrites a string field.final intWrites a string field.final intwriteDouble(String k, double v, int index, int flag) Writes a double field.final intWrites a string field.final voidEfficiently writes a line feed.Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.jstach.rainbowgum.LogEncoder.Buffer
close
-
Field Details
-
EXTENDED_F
A flag to indicate this field is extended which means it will be prefixed withJsonBuffer.ExtendedFieldPrefix.- See Also:
-
-
Constructor Details
-
JsonBuffer
Create a JSON buffer.- Parameters:
prettyPrint- whether or not to pretty print the JSON.extendedFieldPrefix- prefix for extended fields.
-
-
Method Details
-
drain
Description copied from interface:LogEncoder.BufferThe appender will call this usually within a lock to transfer content from the buffer to the output.- Specified by:
drainin interfaceLogEncoder.Buffer- Parameters:
output- output to receive content.event- log event.
-
clear
Description copied from interface:LogEncoder.BufferPrepare the buffer for reuse.An appender may not call clear before being passed to the encoder so the encoder should do its own clearing.
- Specified by:
clearin interfaceLogEncoder.Buffer
-
getFormattedMessageBuilder
Reusable String buffer for formatted messages.- Returns:
- buffer.
-
write
Writes a JSON token.- Parameters:
token- token not null.
-
writeLineFeed
Efficiently writes a line feed. -
write
Writes a string field.- Parameters:
k- field namev- valueindex- the current index for comma determination- Returns:
- index + 1
-
write
Writes a string field.- Parameters:
k- field namev- valueindex- the current index for comma determinationflag- seeEXTENDED_F- Returns:
- index + 1
-
writeDouble
Writes a double field.- Parameters:
k- field namev- valueindex- the current index for comma determinationflag- seeEXTENDED_F- Returns:
- index + 1
-
writeInt
Writes a string field.- Parameters:
k- field namev- valueindex- the current index for comma determinationflag- seeEXTENDED_F- Returns:
- index + 1
-