user/dev discussion of public-inbox itself
 help / color / mirror / code / Atom feed
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


  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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/public-inbox.git

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).