Metadata-Version: 2.1
Name: basecmd
Version: 0.1.2
Summary: Logging boilerplate for the command line
Home-page: https://github.com/dnknth/basecmd
Author: dnknth
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Software Development :: Libraries
Description-Content-Type: text/markdown
License-File: LICENSE.txt

# basecmd

Boilerplate for the command line.

Classes inheriting from `BaseCmd` have a `self.log` attribute
that is a standard Python logger. A basic logging configuration to `sys.stdout`
is provided.

For command line options controlling the logging verbosity
and output to a log file, call the command with `-h` or `--help`.

Defaults for logging options can be also provided as environment variables
or in a `.emv` file:

* `LOG_LEVEL`: the logging verbosity, one of `error`, `warn`, `info`, or `debug`; default: `info`.
' `LOG_FILE`: path to a log file, defaults to the standard output for easy redirection.
* `LOG_FORMAT`: a standard Python logging format, defaults to `%(asctime).19s  %(message)s` when logging to a file or a terminal and `%(message)s` otherwise.

When logging to a terminal, the output is colored by log level.

## Example usage

```python
from basecmd import BaseCmd

class MyCmd(BaseCmd):

    def add_arguments(self):
        self.parser.add_argument('--foo',
            help='Custom command line option')

    def __call__(self):
        self.log.debug(self.options.foo)

if __name__ == '__main__':
    cmd = MyCmd
    cmd()
```
