# Usage This page describes basic **`nmk`** usage and the supported command line options. Use **`nmk -h`** to get live help about these options in the terminal. ``` user@host:~$ $ nmk -h usage: nmk [-h] [-V] [-q | --info | -v] [--log-file L] [--no-logs] [--log-prefix PREFIX] [-r R] [--no-cache] [-p P] [--config JSON|K=V] [--print K] [--dry-run] [--force] [--skip SKIPPED_TASKS] [task ...] Next-gen make-like build system positional arguments: task build task to execute options: -h, --help show this help message and exit -V, --version show program's version number and exit logging options: -q, --quiet quiet mode (only warning/error messages) --info default mode -v, --verbose verbose mode (all messages, including debug ones) --log-file L write logs to L (default: {PROJECTDIR_NMK}/nmk.log) --no-logs disable logging --log-prefix PREFIX prefix for all log messages root folder options: -r R, --root R root folder (default: virtual env parent) --no-cache clear cache before resolving references project options: -p P, --project P project file (default: nmk.yml) config options: --config JSON|K=V contribute or override config item(s) --print K print required config item(s) and exit build options: --dry-run list tasks to be executed and exit --force, -f force tasks rebuild --skip SKIPPED_TASKS skip specified task ``` *** ## Logging ### Levels **`nmk`** prints logs on different levels, and stdout log display can be configured using one of the verbosity options: - **`--info`** (default): only info (**[I]**) and higher level logs will be displayed - **`-q, --quiet`**: only warning (**[W]**) and error (**[E]**) logs will be displayed - **`-v, --verbose`**: all logs (including debug (**[D]**) ones) will be displayed (parser-log-file)= ### File In addition to the displayed ones, logs are persisted in a file, configured with **`--log-file`** option. Default log file is **`{PROJECTDIR_NMK}/nmk.log`** (**`{PROJECTDIR_NMK}`** being the project **`.nmk/`** subfolder). ```{note} Value for this option can contain keywords representing directories known to **`nmk`**; see {ref}`built-in config items`. Allowed keyword are **`{PROJECTDIR}`**, **`{PROJECTDIR_NMK}`**, **`{ROOTDIR}`** and **`{ROOTDIR_NMK}`**. ``` *Changed in version 1.3.0* -- Previous default value was **`{ROOTDIR}/.nmk/nmk.log`** The log file is logging all levels (including debug one), whatever is the chosen level for stdout display (see above). It uses a rotating mechanism, to start a new log file as soon as a given size (1MB) is reached. Up to 5 backup log files are kept before being deleted. At the moment, log file size + backup count is hard coded and can't be configured. ### Disabling logs Logs can be completely disabled (both displayed and persisted ones) if the **`--no-logs`** option is used. (parser-log-prefix)= ### Prefix *Added in version 1.2.0* Top level tools that call **`nmk`** can add a log prefix thanks to the **`--log-prefix`**, in order to help identifying different runs (e.g. for different nmk projects folders). See `` location in logs displays formats below. ### Format In quiet/info mode, logs are displayed using this format: > **`