summaryrefslogtreecommitdiff
path: root/absl/log/internal/log_message.h
Commit message (Collapse)AuthorAge
* Instantiate LogMessage::CopyToEncodedBuffer separately for literals and ↵Gravatar Andy Getzendanner2023-05-01
| | | | | | | | | | | non-literals to save an instruction at each operator<<(string) callsite. The operator<<s get inlined at the callsite. The saved instruction is a 'load immediate' to put the StringType argument in a register for passing. This does make the logging TU slightly larger, but it will be an overall size win for all but the smallest programs. Smaller, faster code at callsites is worth it anyway. PiperOrigin-RevId: 528569773 Change-Id: Id8185266a975a12ab6f1a553c2c0846261822396
* Shrink most LOG callsites by one instruction (SysV x86_64 ABI) by ↵Gravatar Andy Getzendanner2023-04-28
| | | | | | | | | | | dispatching to per-severity constructors and omitting the severity argument. In that particular ABI, the empty tag structs are NO_CLASS and don't appear in the generated code. https://godbolt.org/z/crqaPh8Kv PiperOrigin-RevId: 527989179 Change-Id: I365f11f6ca1de2623690d0a04e6f02f7de82b1fc
* Write (more) directly into the structured buffer from StringifySink, ↵Gravatar Andy Getzendanner2022-11-28
| | | | | | | including for (size_t, char) overload. PiperOrigin-RevId: 491456410 Change-Id: I76dec24b0bd02204fa38419af9247cee38b1cf50
* Zero encoded_remaining when a string field doesn't fit, so that we don't ↵Gravatar Andy Getzendanner2022-11-21
| | | | | | | leave partial data in the buffer (all decoders should ignore it anyway) and to be sure that we don't try to put any subsequent operands in either (there shouldn't be enough space). PiperOrigin-RevId: 490143656 Change-Id: I4d743dd9214013fbd151478ef662d50affd5ff7a
* Release structured logging.Gravatar Andy Getzendanner2022-11-17
| | | | | | | This stores the operands to LOG (and CHECK) as separate fields in a serialized protobuf. The protobuf format is not yet published. PiperOrigin-RevId: 489275799 Change-Id: I86d83671a6b1feb2bddd5bee51552907897ca8eb
* Minor formatting changes in preparation for structured logging...Gravatar Andy Getzendanner2022-11-16
| | | | | PiperOrigin-RevId: 489044912 Change-Id: I1657dd60bcfa2d0fb4b889f27f4f237325b73f08
* Support logging of user-defined types that implement `AbslStringify()`Gravatar Phoebe Liang2022-11-02
| | | | | | | | | If a user-defined type has `AbslStringify()` defined, it will always be used for logging over `operator<<`. `HasAbslStringify` now uses the empty class `UnimplementedSink` for its checks instead of `StringifySink` in order to make it work in cases involving other sinks. PiperOrigin-RevId: 485710377 Change-Id: Ibdd916151c7abc3269c35fbe79b772867f3d25e1
* Release the Abseil Logging libraryGravatar Gennadiy Rozental2022-08-25
PiperOrigin-RevId: 470080638 Change-Id: I8d9ddfabc7704c383ed5a73abf0411f4c58a4bf7