Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pg_cron writing every client_min_messages to log file #350

Open
bernardo-bc opened this issue Aug 21, 2024 · 2 comments
Open

pg_cron writing every client_min_messages to log file #350

bernardo-bc opened this issue Aug 21, 2024 · 2 comments

Comments

@bernardo-bc
Copy link

Based on the 'client_min_messages' parameter in postgresql.conf, all functions that have RAISE something have their messages written to the file specified in 'log_filename', regardless of the parameter log_min_messages = warning.

Example: if I have client_min_messages = notice, all functions executed via pg_cron job that have RAISE INFO 'hello' or RAISE NOTICE 'hello', have the RAISE parameters saved in the file log_filename, even if log_min_messages = warning.
It would be interesting to have a way to disable this, since the messages in 'client_min_messages' should only appear on the screen when the functions are executed by the user, not by pg_cron.

@JamesInform
Copy link

JamesInform commented Oct 13, 2024

Yep!

That is really annoying.

E.g. I have a plsql block that executes every 10 seconds. It writes tons of notice message, all of them appearing in my log making it almost a TB per during the day.

Although I have set "log_min_messages" to "warning".

@TheOtherBrian1
Copy link

TheOtherBrian1 commented Nov 1, 2024

This is not a bug in pg_cron, but expected behavior for Postgres.

Postgres's error severity table

Severity Usage
DEBUG1 .. DEBUG5 Provides successively-more-detailed information for use by developers.
INFO Provides information implicitly requested by the user, e.g., output from VACUUM VERBOSE.
NOTICE Provides information that might be helpful to users, e.g., notice of truncation of long identifiers.
WARNING Provides warnings of likely problems, e.g., COMMIT outside a transaction block.
ERROR Reports an error that caused the current command to abort.
LOG Reports information of interest to administrators, e.g., checkpoint activity.
FATAL Reports an error that caused the current session to abort.
PANIC Reports an error that caused all database sessions to abort.

Each logging level includes all subsequent levels as well.

For example, WARNING encompasses ERROR, LOG, FATAL, and PANIC because it sits above them in the hierarchy.

If you do not want to log RAISE LOG values, you'll have to set log_min_messages to FATAL or PANIC. Alternatively, you could also just use RAISE NOTICE instead.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants