41.5.3 Warning Options

These variables are used by users to control what happens when a Lisp program reports a warning.

User Option: warning-minimum-level

This user option specifies the minimum severity level that should be shown immediately to the user, by popping the warnings buffer in some window. The default is :warning, which means to show the warning buffer for any warning severity except :debug. The warnings of lower severity levels will still be written into the warnings buffer, but the buffer will not be forced onto display.

User Option: warning-minimum-log-level

This user option specifies the minimum severity level that should be logged in the warnings buffer. Warnings of lower severity will be completely ignored: not written to the warnings buffer and not displayed. The default is :warning, which means to log warnings of any severity except :debug.

User Option: warning-suppress-types

This list specifies which warning types should not be displayed immediately when they occur. Each element of the list should be a list of symbols. If an element of this list has the same elements as the first elements in a warning type, then the warning of that type will not be shown on display by popping the warnings buffer in some window (the warning will still be logged in the warnings buffer).

For example, if the value of this variable is a list like this:

((foo) (bar subtype))

then warnings whose types are foo or (foo) or (foo something) or (bar subtype other) will not be shown to the user.

User Option: warning-suppress-log-types

This list specifies which warning types should be ignored: not logged in the warnings buffer and not shown to the user. The structure and the matching of warning types are the same as for warning-suppress-types above.

During startup, Emacs delays showing any warnings until after it loads and processes the site-wide and user’s init files (see Summary: Sequence of Actions at Startup). Let-binding (see Local Variables) the values of these options around some code in your init files which might emit a warning will therefore not work, because it will not be in effect by the time the warning is actually processed. Thus, if you want to suppress some warnings during startup, change the values of the above options in your init file early enough, or put those let-binding forms in your after-init-hook or emacs-startup-hook functions. See The Init File.