POE::C...:Logger(3pm)

πŸ“¦
version 6.95 Β· 4 versions
, in ubuntu resolute, ubuntu stonking

πŸ’– POE::Component::IRC::Plugin::Logger πŸ’–

okay bestie, gather round, because this is the manual page for POE::Component::IRC::Plugin::Logger, straight out of the User Contributed Perl Documentation (yeah, that's the POE::C...:Logger(3pm) you saw in the header β€” it's just the long name getting squished πŸ’…).


✨ NAME ✨

POE::Component::IRC::Plugin::Logger β€” a PoCo-IRC plugin which logs public, private, and DCC chat messages to disk. like, it's a lil scribe for your IRC life, no cap πŸ“πŸ’–


🌸 SYNOPSIS 🌸

use POE::Component::IRC::Plugin::Logger;

$irc->plugin_add('Logger', POE::Component::IRC::Plugin::Logger->new(
    Path    => '/home/me/irclogs',
    DCC     => 0,
    Private => 0,
    Public  => 1,
));

there it is. drop it in, hand it a Path, and it starts writing everything down like the world's most dedicated group-chat historian 🫢


πŸ¦‹ DESCRIPTION πŸ¦‹

POE::Component::IRC::Plugin::Logger is a POE::Component::IRC plugin. It logs messages and CTCP ACTIONs to either #some_channel.log or some_nickname.log in the supplied path. In the case of DCC chats, a = is prepended to the nickname (like in irssi). iconic behaviour honestly ✨

the plugin tries to detect UTF-8 encoding of every message or else falls back to CP1252, like irssi (and, supposedly, mIRC) does by default. Resulting log files will be UTF-8 encoded. and the default log format is similar to xchat's, except that it's sane and parsable πŸ’… (yes bestie, that is a read)

⚠️ heads up: This plugin requires the IRC component to be POE::Component::IRC::State or a subclass thereof. It also requires a POE::Component::IRC::Plugin::BotTraffic to be in the plugin pipeline. It will be added automatically if it is not present. so like, don't stress, it handles that part for you 🫢

πŸŽ€ METHODS πŸŽ€

πŸ’œ new

Arguments, bestie, one at a time:

  • 'Path' β€” the place where you want the logs saved. πŸ“‚
  • 'Private' β€” whether or not to log private messages. Defaults to 1.
  • 'Public' β€” whether or not to log public messages. Defaults to 1.
  • 'DCC' β€” whether or not to log DCC chats. Defaults to 1.
  • 'Notices' β€” whether or not to log NOTICEs. Defaults to 0.
  • 'Sort_by_date' β€” whether or not to split log files by date, i.e. #channel/YYYY-MM-DD.log instead of #channel.log. If enabled, the date will be omitted from the timestamp. Defaults to 0.
  • 'Strip_color' β€” whether or not to strip all color codes from messages. Defaults to 0.
  • 'Strip_formatting' β€” whether or not to strip all formatting codes from messages. Defaults to 0.
  • 'Restricted' β€” set this to 1 if you want all directories/files to be created without read permissions for other users (i.e. 700 for dirs and 600 for files). Defaults to 1. πŸ”’
  • 'Format' β€” a hash reference representing the log format, if you want to define your own. See the source for details.
  • 'Log_sub' β€” a subroutine reference which can be used to override the file logging. Use this if you want to store logs in a database instead, for example. It will be called with 3 arguments: the context (a channel name or nickname), a type (e.g. 'privmsg' or '+b', and any arguments to that type. You can make use "default_format" to create logs that match the default log format.
😭 note: You must take care of handling date/time and stripping colors/formatting codes yourself. no shortcuts bestie, that part is on you πŸ’€

Returns a plugin object suitable for feeding to POE::Component::IRC's plugin_add method. feed the plugin, slay the logs πŸ”₯

⭐ default_format

Returns a hash reference of type/subroutine pairs, for formatting logs according to the default log format. it's giving "here's the blueprint, go off" πŸ‘‘


πŸ‘‘ AUTHOR πŸ‘‘

Hinrik Γ–rn SigurΓ°sson, hinrik.sig@gmail.com πŸ’Œ


and that's the whole page babes 🌈 β€” shipped with perl v5.40.1, dated 2025-08-21, and you read it all the way through?? main character energy fr fr πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from