Yeah, I understand these reservations. I also learned that systemd
handles stdout/stderr logging on its own now, so if that's the
default on the bulk of popular UNIXes, perhaps this is a retrograde
choice.

That said it is the *only* choice I can support on Windows, where
there is no system-wide logging service capable of handling the sort
of volume of logs we generate. (By comparison, Microsoft's own IIS
web server logs directly to its own logfile, or optionally to an
ODBC connection, not to the system Event Logger service, which it
only uses to log startup/shutdown/critical errors). At the very
least I will have to search-and-replace at Windows installer creation
time to log to a file and live with the large-log-file-blows-up-disk
problem there, otherwise we simply lose logs into the aether.

We could add flags into ./configure to log appropriately to a file
or to stderr if someone is energetic enough to add the support code.
I'm just not sure how that plays nicely with reltool overlay support,
though. And we still don't have a clear answer as to what the default
would be (if you don't specify --log-file or --log-stderr).

-Joan

----- Original Message -----
From: "Robert Samuel Newson" <[email protected]>
To: [email protected]
Sent: Tuesday, August 2, 2016 4:29:33 PM
Subject: Re: [PROPOSAL] CouchDB 2.0 log to ./var/log/couchdb.log by default

My concern is that (and we've seen this with BigCouch), folks won't configure 
log rotation until they have either a whopping great log file or, more 
typically, been woken by a paging system as their filesystem hit 100%.

Given this method of logging also forces a copytruncate approach to rotation 
(i.e, a hackish workaround), I'm not keen (but not vetoing either).

There's no one right answer here. Folks that run couchdb under runit or systemd 
will get log capture and rotation for free with the stderr approach, for 
example.

Can we make this an active choice so we're out of this guessing game? One 
suggestion would be to default to a configuration that logs nothing anywhere 
except for a giant warning to configure logging. I'm thinking of log4j's 
approach here.

B.


> On 2 Aug 2016, at 21:20, Paul J Davis <[email protected]> wrote:
> 
> Seems reasonable to me. I wonder if we should add a stdout log line that 
> indicates where logs are going? Would be easy to add that as a module 
> callback so it would work for stderr, file, and syslog. 
> 
>> On Aug 2, 2016, at 2:36 PM, Joan Touzet <[email protected]> wrote:
>> 
>> Presently, CouchDB 2.0 logs only to stderr. I have opened a PR
>> to switch this behaviour to log to the ./var/log/couchdb.log
>> release-local file by default:
>> 
>> https://github.com/apache/couchdb/pull/435
>> 
>> This behaviour is easily overridden in the default.ini/local.ini
>> files if desired.
>> 
>> I'm not sure if this is wanted by all stakeholders, so I haven't
>> merged it into master. Please let me know either here or in the PR
>> your thoughts. My intent is to merge this change by lazy consensus.

Reply via email to