From: Eric Wong <e@80x24.org>
To: meta@public-inbox.org
Subject: [PATCH 11/12] nntp: log to FDs given by the Nntpd module
Date: Sat, 19 Sep 2015 02:03:39 +0000 [thread overview]
Message-ID: <20150919020340.6484-12-e@80x24.org> (raw)
In-Reply-To: <20150919020340.6484-1-e@80x24.org>
This will allow us to redirect stdout/stderr more easily
for logging.
---
lib/PublicInbox/NNTP.pm | 29 ++++++++++++++++++-----------
public-inbox-nntpd | 2 ++
2 files changed, 20 insertions(+), 11 deletions(-)
diff --git a/lib/PublicInbox/NNTP.pm b/lib/PublicInbox/NNTP.pm
index 01039ba..80adb65 100644
--- a/lib/PublicInbox/NNTP.pm
+++ b/lib/PublicInbox/NNTP.pm
@@ -61,7 +61,7 @@ sub process_line ($$) {
my $err = $@;
if ($err && !$self->{closed}) {
chomp($l = Dumper(\$l));
- warning('error from: ', $l, ' ', $err);
+ err($self, "error from: $l $err");
$res = '503 program fault - command not performed';
}
return 0 unless defined $res;
@@ -502,13 +502,13 @@ sub long_response ($$$$) {
$self->{long_res} = undef;
if ($err) {
- warning("$err during long response[$fd] - ".
- sprintf('%0.6', now() - $t0));
+ err($self,
+ "$err during long response[$fd] - %0.6f",
+ now() - $t0);
}
if ($self->{closed}) {
- printf(STDERR
- " deferred[$fd] aborted - %0.6f\n",
- now() - $t0);
+ out($self, " deferred[$fd] aborted - %0.6f",
+ now() - $t0);
} else {
$self->watch_read(1);
}
@@ -522,8 +522,7 @@ sub long_response ($$$$) {
$self->{long_res} = undef;
$self->watch_read(1);
res($self, '.');
- printf(STDERR " deferred[$fd] done - %0.6f\n",
- now() - $t0);
+ out($self, " deferred[$fd] done - %0.6f", now() - $t0);
}
};
$self->{long_res}->(); # kick off!
@@ -713,6 +712,16 @@ sub do_write ($$) {
$done;
}
+sub err ($$;@) {
+ my ($self, $fmt, @args) = @_;
+ printf { $self->{nntpd}->{err} } $fmt."\n", @args;
+}
+
+sub out ($$;@) {
+ my ($self, $fmt, @args) = @_;
+ printf { $self->{nntpd}->{out} } $fmt."\n", @args;
+}
+
use constant MSG_MORE => ($^O eq 'linux') ? 0x8000 : 0;
sub do_more ($$) {
@@ -750,7 +759,7 @@ sub event_read {
$r = eval { $self->process_line($line) };
my $d = $self->{long_res} ?
' deferred['.fileno($self->{sock}).']' : '';
- printf(STDERR "$line - %0.6f$d\n", now() - $t0);
+ out($self, "$line - %0.6f$d", now() - $t0);
}
return $self->close if $r < 0;
my $len = bytes::length($$buf);
@@ -758,6 +767,4 @@ sub event_read {
$self->push_back_read($buf) if ($len);
}
-sub warning { print STDERR 'W: ', @_, "\n" }
-
1;
diff --git a/public-inbox-nntpd b/public-inbox-nntpd
index 7fec840..0c221fa 100644
--- a/public-inbox-nntpd
+++ b/public-inbox-nntpd
@@ -44,6 +44,8 @@ sub new {
my ($class) = @_;
my $self = fields::new($class);
$self->{groups} = {};
+ $self->{err} = \*STDERR;
+ $self->{out} = \*STDOUT;
$self;
}
--
EW
next prev parent reply other threads:[~2015-09-19 2:03 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-19 2:03 [PATCH 0/12] nntp: misc updates Eric Wong
2015-09-19 2:03 ` [PATCH 01/12] nntp: use write_buf_size instead write_buf Eric Wong
2015-09-19 2:03 ` [PATCH 02/12] nntp: introduce long response API for streaming Eric Wong
2015-09-19 2:03 ` [PATCH 03/12] nntp: use long response API for LISTGROUP Eric Wong
2015-09-19 2:03 ` [PATCH 04/12] nntp: implement command argument checking Eric Wong
2015-09-19 2:03 ` [PATCH 05/12] nntp: XOVER does not require range Eric Wong
2015-09-19 2:03 ` [PATCH 06/12] nntp: speed up XHDR for the Message-ID case Eric Wong
2015-09-19 2:03 ` [PATCH 07/12] nntp: implement XROVER, speed up XHDR for some cases Eric Wong
2015-09-19 2:03 ` [PATCH 08/12] nntp: implement XPATH Eric Wong
2015-09-19 2:03 ` [PATCH 09/12] nntp: fix logging of long responses Eric Wong
2015-09-19 2:03 ` [PATCH 10/12] nntp: fix ARTICLE/HEAD/BODY/STAT Eric Wong
2015-09-19 2:03 ` Eric Wong [this message]
2015-09-19 2:03 ` [PATCH 12/12] nntp: article lookups by Message-ID may cross newsgroups Eric Wong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://public-inbox.org/README
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150919020340.6484-12-e@80x24.org \
--to=e@80x24.org \
--cc=meta@public-inbox.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).