# ln, log

[Read this page in HTML](https://www.scopedb.io/docs/reference/functions/numeric/logarithms)

Returns the natural logarithm or a logarithm with a specified base.

## Syntax

```scopeql
ln(<expr>)
log(<expr> [, base => <base>])
```

## Arguments

| Argument | Type                      | Description                                                                                                      |
| -------- | ------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| `<expr>` | `int`, `uint`, or `float` | Input value.                                                                                                     |
| `base`   | `int`                     | Optional constant; defaults to 10. Base for `log`. Use a positive base other than 1 for a real-valued logarithm. |

## Returns

Returns `float`. Returns NULL if the input is NULL. For a valid base, zero input produces an infinity and negative input produces `NaN`.

## Examples

Calculate logarithms of request counts before plotting services with very different traffic volumes:

```scopeql
VALUES ('checkout', 100), ('catalog', 1000), ('search', 10000)
SELECT $0 AS service, $1 AS events
SELECT
    service, events,
    round(log(events, base => 10) * 100.0) / 100.0 AS log10_events,
    round(ln(events) * 1000.0) / 1000.0 AS ln_events
```

```text
+----------+--------+--------------+-----------+
| service  | events | log10_events | ln_events |
+----------+--------+--------------+-----------+
| checkout | 100    | 2.0          | 4.605     |
| catalog  | 1000   | 3.0          | 6.908     |
| search   | 10000  | 4.0          | 9.21      |
+----------+--------+--------------+-----------+
```

The base-10 logarithm increases by one for each tenfold increase in events. Results are rounded for display.
