2019-10-21 04:22:28 -04:00
---
2020-01-05 05:13:09 -05:00
title: errorf and warnf
description: Log ERROR or WARNING from the templates.
2019-10-21 04:22:28 -04:00
date: 2017-09-30
publishdate: 2017-09-30
lastmod: 2017-09-30
categories: [functions]
menu:
docs:
parent: "functions"
keywords: [strings, log, error]
signature: ["errorf FORMAT INPUT"]
workson: []
hugoversion:
relatedfuncs: [printf]
deprecated: false
---
2020-01-05 05:13:09 -05:00
`errorf` or `warnf` will evaluate a format string, then output the result to the ERROR or WARNING log (and only once per error message to avoid flooding the log).
2019-10-21 04:22:28 -04:00
2020-01-05 05:13:09 -05:00
Any ERROR will also cause the build to fail (the `hugo` command will `exit -1` ).
Both functions return an empty string, so the messages are only printed to the console.
2019-10-21 04:22:28 -04:00
```
{{ errorf "Failed to handle page %q" .Path }}
```
2020-01-05 05:13:09 -05:00
```
{{ warnf "You should update the shortcodes in %q" .Path }}
```
2021-07-04 10:34:26 -04:00
Note that `errorf` , `erroridf` , and `warnf` support all the formatting verbs of the [fmt ](https://golang.org/pkg/fmt/ ) package.
2021-06-18 11:49:54 -04:00
## Suppress errors
2021-07-04 10:34:26 -04:00
Sometimes it may make sense to let the user suppress an ERROR and make the build succeed.
2021-06-18 11:49:54 -04:00
2021-07-04 10:34:26 -04:00
You can do this by using the `erroridf` function. This functions takes an error ID as the first argument.
2021-06-18 11:49:54 -04:00
2021-07-04 10:34:26 -04:00
```
{{ erroridf "my-custom-error" "You should consider fixing this." }}
2021-06-18 11:49:54 -04:00
```
This will produce:
```
ERROR 2021/06/07 17:47:38 You should consider fixing this.
If you feel that this should not be logged as an ERROR, you can ignore it by adding this to your site config:
ignoreErrors = ["my-custom-error"]
```