# NAME

Web::ChromeLogger - ChromeLogger for Perl

# SYNOPSIS

   use Web::ChromeLogger;

   get '/', sub {
       my $logger = Web::ChromeLogger->new();
       $logger->info('hey!');
       $logger->infof('Hello, %s!', 'John');

       my $html = render_html();

       return [
           200,
           ['X-ChromeLogger-Data' => $logger->finalize()],
           $html,
       ];
   };

# DESCRIPTION

Web::ChromeLogger is a ChromeLogger library for Perl5.

Chrome Logger is a Google Chrome extension for debugging server side applications in the Chrome console.

# HOW IT WORKS

This module generates the string for ChromeLogger. You can send the string in 'X-ChromeLogger-Data' header in HTTP response.

For more details, please see [ChromeLogger's Technical Specification](http://craig.is/writing/chrome-logger/techspecs)

# LARGE RESPONSE HEADER

## NGINX PROXY

If you are using nginx as reverse proxy, you may need to set following parameters in your configuration file:

   proxy_buffer_size   128k;
   proxy_buffers   4 256k;
   proxy_busy_buffers_size   256k;

## Maximum Data Size

Chrome has a limit of `250kb` across all headers for a single request so that is the maximum amount of encoded data you can send.

# METHODS

- `my $logger = Web::ChromeLogger->new(%args)`

   Create new instance with following parameters:

   - json\_encoder (Default: `JSON::XS->new()->ascii(1)->convert_blessed` )

       JSON encoder object. You can use JSON::XS or JSON::PP for this.

       I guess you don't need to set this parameter.

- `$logger->group($title: Str)`
- `$logger->groupf($format: Str, @list)`

   Push `group`.

- `$logger->group_end($title: Str)`
- `$logger->group_endf($format: Str, @list)`

   Push `groupEnd`.

- `$logger->group_collapsed($title: Str)`
- `$logger->group_collapsedf($format: Str, @list)`

   Push `groupCollapsed`.

- `$logger->info($title: Str)`
- `$logger->infof($format: Str, @list)`

   Push `info`.

- `$logger->warn($title: Str)`
- `$logger->warnf($format: Str, @list)`

   Push `warn`.

- `$logger->error($title: Str)`
- `$logger->errorf($format: Str, @list)`

   Push `error`.

- `$logger->wrap_by_group($title: Str)`
- `$logger->wrap_by_groupf($format: Str, @list)`

   Wrap current logging data by `$title` group.

- `$logger->finalize()`

   Generate header string.

# LICENSE

Copyright (C) Tokuhiro Matsuno.

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

# AUTHOR

Tokuhiro Matsuno <[email protected]>

moznion

# SEE ALSO

[ChromeLogger](http://craig.is/writing/chrome-logger)