fcft\_log\_init(3) fcft fcft\_log\_init(3)

# [NAME](#NAME)

fcft\_log\_init - configure logging in fcft

# [SYNOPSIS](#SYNOPSIS)

**#include &lt;fcft/fcft.h&gt;**

**void fcft\_log\_init(**

enum fcft\_log\_colorize *colorize, bool* *do\_syslog,* **enum fcft\_log\_class** *log\_level);*

# [DESCRIPTION](#DESCRIPTION)

By default, fcft does not log anything; use **fcft\_log\_init**() to enable, and configure logging in fcft.

**fcft\_log\_init**() is typically called early, at program startup.

*colorize* is one of:

```
enum fcft_log_colorize {


    FCFT_LOG_COLORIZE_NEVER,


    FCFT_LOG_COLORIZE_ALWAYS,


    FCFT_LOG_COLORIZE_AUTO
};
```

**FCFT\_LOG\_COLORIZE\_AUTO** enables colors if stderr is a TTY.

if *do\_syslog* is set, fcft will log to syslog, in addition to the regular logging on stderr.

Note that fcft does not call **openlog**(), even if *do\_syslog* is set. Do this from the calling application. Before, or after calling **fcft\_log\_init**() does not matter, as long as it is done before calling any other fcft API functions.

Finally, *log\_level* configures which types of log messages that will be shown.

```
enum fcft_log_class {


    FCFT_LOG_CLASS_NONE,


    FCFT_LOG_CLASS_ERROR,


    FCFT_LOG_CLASS_WARNING,


    FCFT_LOG_CLASS_INFO,


    FCFT_LOG_CLASS_DEBUG
};
```

Note that this is not a bitmask; setting **FCFT\_LOG\_CLASS\_INFO**, also enables **FCFT\_LOG\_CLASS\_WARNING** and **FCFT\_LOG\_CLASS\_ERROR**.

2026-08-29 3.3.3

---

Document: fcft_log_init(3) from fcft 3.3.3-r3 (Chainguard OS)
Source: https://codeberg.org/dnkl/fcft
