---
name: "logger"
section: "1"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["linux", "freebsd", "openbsd", "macos"]
url: "https://new.carta.tech/logger"
---

# logger(1)

make entries in the system log

## NAME

**logger** – make entries in the system log

## SYNOPSIS

**logger** \[**-46Ais**\] \[**-f** *file*\] \[**-H** *hostname*\] \[**-h** *host*\] \[**-P** *port*\] \[**-p** *pri*\] \[**-S** *addr*:*port*\] \[**-t** *tag*\] \[*message* *...*\]

## DESCRIPTION

The **logger** utility provides a shell command interface to the [syslog(3)](/syslog/3.md) system log module.

The following options are available:

- **-4**

  Force **logger** to use IPv4 addresses only.

- **-6**

  Force **logger** to use IPv6 addresses only.

- **-A**

  By default, **logger** tries to send the message to only one address, even if the host has more than one A or AAAA record. If this option is specified, **logger** tries to send the message to all addresses.

- **-i**

  Log the process id of the logger process with each line. This flag is ignored and the process id is always logged. See also **-t**.

- **-s**

  Log the message to standard error, as well as the system log.

- **-f** *file*

  Read the contents of the specified file into syslog. This option is ignored when a message is also specified.

- **-H** *hostname*

  Set the hostname in the header of the message to specified value. If not specified, host part of [gethostname(3)](/gethostname/3.md) will be used.

- **-h** *host*

  Send the message to the remote system *host* instead of logging it locally. Note that **logger** currently supports AF\_INET (IPv4), AF\_INET6 (IPv6), and AF\_LOCAL (Unix-domain socket) address families. The following address formats are valid in *host*:

  - AF\_INET

    192\.168.2.1

  - AF\_INET6

    2001:db8::1

  - AF\_LOCAL

    */var/run/log*

- **-P** *port*

  Send the message to the specified *port* number on a remote system, which can be specified as a service name or as a decimal number. The default is “syslog”. If an unknown service name is used, **logger** prints a warning and falls back to port 514.

- **-p** *pri*

  Enter the message with the specified priority. The priority may be specified numerically or as a facility.level pair. For example, “**-p** local3.info” logs the message(s) as *info*rmational level in the *local3* facility. The default is “user.notice”.

- **-S** *addr*:*port*

  Specify source address and/or source port when using **-h** option. The same address will be used for all of the remote addresses when **-A** flag is enabled. Note that a numeric IPv6 address in *addr* must be enclosed with “\[” and “\]”.

- **-t** *tag*

  Mark every line in the log with the specified *tag* rather than the default of current login name. Use **-t** *tag\[N\]* to insert specific decimal process id instead of id of **logger**.

- *message*

  Write the message to log; if not specified, and the **-f** flag is not provided, standard input is logged.

## EXIT STATUS

The **logger** utility exits 0 on success, and \>0 if an error occurs.

## EXAMPLES

```
logger System rebooted
logger -p local0.notice -t HOSTIDM -f /dev/idmc
```

## SEE ALSO

[syslog(3)](/syslog/3.md), [syslogd(8)](/syslogd/8.md)

## STANDARDS

The **logger** command is expected to be IEEE Std 1003.2 (“POSIX.2”) compatible.
