Change for #2954: add configurable log levels for different transports

There are a number of small changes in this commit.

1) Previously, we 3 loggers, each with a different transport.  We now have 1 logger with 3 possible transports.  That's more in line with winston's design.
2) I removed the deprecated support for the "quiet" flag.
3) I simplified how default values for the transports are set.
4) File logging is now enabled by default.
5) Console and file logging can have different logging level's set, eg `--log-level info:warn`.  If there's no [:lvl] then both transports use the same level.
6) Webhook will use the same level as file.
7) Provided some examples of where I think fail fast asserts would be appropriate for detecting regressions and config problems.

Yes, size is a concern. The size limiting features on winston are seriously
buggy, so the only way to 100% guarantee the log won't exceed size n is to
turn it off completely.  null is prolly the right choice here.


On Wed, Sep 3, 2014 at 5:19 PM, Jonathan Lipps <notifications@github.com>
wrote:

> In lib/server/parser.js:
>
> > @@ -158,20 +150,23 @@ var args = [
> >    }],
> >
> >    [['-g', '--log'], {
> > -    defaultValue: null
> > +    defaultValue: "appium-debug.log"
>
> hmm, now I'm rethinking this. with this defaultValue here, it means that
> we will by default log to a file even when someone doesn't pass in -g. i
> think for reasons of disk space on CI servers and such, we should have no
> logging at all until this flag is passed, which means we probably do need
> to do a default of null here. what do you think?
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/appium/appium/pull/3544/files#r17080951>.
>