The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Log::ger::Layout::YAML - Layout log message as a YAML

VERSION

This document describes version 0.001 of Log::ger::Layout::YAML (from Perl distribution Log-ger-Layout-YAML), released on 2017-06-28.

SYNOPSIS

use Log::ger::Layout JSON => (
    add_fields         => {key3 => 'value', key4 => 'value', ...},         # optional
    add_special_fields => {_date => 'Date_GMT', _host => 'Hostname', ...}, # optional
    delete_fields      => ['key1', 'key2', qr/some-regex/, ...],           # optional
);
use Log::ger;

# if you use it together with Log::ger::Format::None:
log_warn({key1 => 'val1', key2 => 'val2', foo => 'bar', ...);

# otherwise, using the standard formatter:
log_warn("blah %s", ['some', 'data']);

The final message will be something like:

---
foo: bar
key3: value
key4: value
_date: "2017-06-28T14:08:22"
_host: example.com

or:

---
message: "blah [\"some\",\"data\"]"
_date: "2017-06-28T14:08:22"
_host: example.com

DESCRIPTION

This layouter allows you to log as YAML. If you use Log::ger::Format::None, you can pass a hashref. Otherwise, the message will be put in message key. You can then delete keys then add additional fields/keys (including special fields, a la Log::ger::Layout::Pattern).

CONFIGURATION

add_fields => hash

add_special_fields => hash

Known special fields:

Category: Category of the logging event
Class: Fully qualified package [or class] name of the caller
Date_Local: Current date in ISO8601 format (YYYY-MM-DD<T>hh:mm:ss) (localtime)
Date_GMT: Current date in ISO8601 format (YYYY-MM-DD<T>hh:mm:ss) (GMT)
File: File where the logging event occurred
Hostname: (if Sys::Hostname is available)
Location: Fully qualified name of the calling method followed by the
  callers source the file name and line number between parentheses.
Line: Line number within the file where the log statement was issued
Message: The message to be logged
Method: Method or function where the logging request was issued
Level: Level ("priority") of the logging event
PID: PID of the current process
Elapsed_Start: Number of seconds elapsed from program start to logging event
Elapsed_Last: Number of seconds elapsed from last logging event to current
  logging event
Stack_Trace: stack trace of functions called

Unknown special fields will cause the layouter to die.

delete_fields

HOMEPAGE

Please visit the project's homepage at https://metacpan.org/release/Log-ger-Layout-YAML.

SOURCE

Source repository is at https://github.com/perlancar/perl-Log-ger-Layout-YAML.

BUGS

Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=Log-ger-Layout-YAML

When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.

SEE ALSO

Log::ger

Log::ger::Layout::Pattern

Log::ger::Layout::LTSV

AUTHOR

perlancar <perlancar@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2017 by perlancar@cpan.org.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.