Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Log Closure

by cmilfo (Hermit)
on Aug 21, 2002 at 18:38 UTC ( #191823=snippet: print w/ replies, xml ) Need Help??

Description: Throwing together some code recently, I needed a log function that would keep a file handle open and scoped to itself. I've since found it useful in several places. If you find an reasons *not* to do something like this, please post!

c
#!/usr/bin/perl

use warnings;
use strict;

my $log_file = createLog(time() . '.log');

$log_file->("$0 Initialized");



sub createLog {
    my $log_file = shift;

    open my $log_handle, ">$log_file" or die "Log file creation failed
+: [$!]\n";
    select((select($log_handle), $| = 1)[0]);

    return sub {
        my $msg  = shift;
        my $time = scalar(localtime());
           $msg  = "BGN[$time]\n$msg\nEND[$time]\n\n";
        if (fileno $log_handle) {
            print $log_handle $msg;
        }
        else {
            warn "Log file closed: $msg";
        }
        return;
    }
}
Comment on Log Closure
Download Code

Back to Snippets Section

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: snippet [id://191823]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (5)
As of 2014-08-23 04:54 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (172 votes), past polls