123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- package htlogr;
-
- ## Author: Alois Mahdal at zxcvb cz
- # Front-end for very primitive remote logging service. Use htlog.cgi
- # as back-end: put it on a HTTP server and provide URL as "path" option
- # when instantiating this class
-
- # This program is free software: you can redistribute it and/or modify
- # it under the terms of the GNU General Public License as published by
- # the Free Software Foundation, either version 3 of the License, or
- # (at your option) any later version.
-
- # This program is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- # GNU General Public License for more details.
-
- # You should have received a copy of the GNU General Public License
- # along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-
- use HTTP::Lite;
- use URI::Escape;
- use Carp;
-
- sub new {
- my ($class, $opts) = @_;
- my $self = {};
-
- foreach (qw/ path /) {
- $self->{$_} = $opts->{$_} or croak("missing mandatory option: $_");
- }
-
- $self->{http} = HTTP::Lite->new;
-
- return bless $self, $class;
- }
-
- sub log {
- my $self = shift;
- my $msg = shift;
- my $tag = shift;
- my $uri;
- $uri .= $self->{path};
- $uri .= "?msg=" . uri_escape($msg);
- $uri .= "&tag=" . uri_escape($tag) if $tag;
- $self->{http}->request($uri) or croak("could not htlog message: $!");
- return $self->{http}->body();
- }
-
- 1;
|