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::FreeSWITCH::Line - FreeSWITCH log line parsing and serializing.

SYNOPSIS

use Log::FreeSWITCH::Line qw(parse serialize);

my $data_o = parse($data);
my $data = serialize($data_o);

SUBROUTINES

parse

my $data_o = parse($data);

Parse FreeSWITCH log line.

Returns Log::FreeSWITCH::Line::Data object.

serialize

my $data = serialize($data_o);

Serialize Log::FreeSWITCH::Line::Data object to FreeSWITCH log line.

Returns string.

ERRORS

parse():
        Cannot parse data.
                Data: %s

serialize():
        Serialize object must be 'Log::FreeSWITCH::Line::Data' object.

EXAMPLE1

use strict;
use warnings;

use Data::Printer;
use Log::FreeSWITCH::Line qw(parse);

# Log record.
my $data = '2014-07-01 13:37:53.973562 [DEBUG] sofia.c:4045 inbound-codec-prefs [PCMA]';

# Parse.
my $data_o = parse($data);

# Dump.
p $data_o;

# Output:
# Log::FreeSWITCH::Line::Data  {
#     Parents       Mo::Object
#     public methods (0)
#     private methods (1) : _datetime
#     internals: {
#         date        "2014-07-01",
#         file        "sofia.c",
#         file_line   4045,
#         message     "inbound-codec-prefs [PCMA]",
#         raw         "2014-07-01 13:37:53.973562 [DEBUG] sofia.c:4045 inbound-codec-prefs [PCMA]",
#         time        "13:37:53.973562",
#         type        "DEBUG"
#     }
# }

EXAMPLE2

use strict;
use warnings;

use Log::FreeSWITCH::Line qw(serialize);
use Log::FreeSWITCH::Line::Data;

# Data.
my $record = Log::FreeSWITCH::Line::Data->new(
        'date' => '2014-07-01',
        'file' => 'sofia.c',
        'file_line' => 4045,
        'message' => 'inbound-codec-prefs [PCMA]',
        'time' => '13:37:53.973562',
        'type' => 'DEBUG',
);

# Serialize and print to stdout.
print serialize($record)."\n";

# Output:
# 2014-07-01 13:37:53.973562 [DEBUG] sofia.c:4045 inbound-codec-prefs [PCMA]

DEPENDENCIES

Error::Pure, Exporter, Log::FreeSWITCH::Line::Data, Readonly, Scalar::Util.

SEE ALSO

Log::FreeSWITCH::Line::Data

Data object which represents FreeSWITCH log line.

REPOSITORY

https://github.com/michal-josef-spacek/Log-FreeSWITCH-Line

AUTHOR

Michal Josef Špaček mailto:skim@cpan.org

http://skim.cz

LICENSE AND COPYRIGHT

© 2014-2022 Michal Josef Špaček

BSD 2-Clause License

VERSION

0.08