Route logging to stdout and simplify INFO format#1352
Merged
dimitri-yatsenko merged 3 commits intomasterfrom Jan 27, 2026
Merged
Route logging to stdout and simplify INFO format#1352dimitri-yatsenko merged 3 commits intomasterfrom
dimitri-yatsenko merged 3 commits intomasterfrom
Conversation
- Route all DataJoint logs to stdout instead of stderr
(avoids red highlighting in terminals/IDEs that color stderr)
- Simplify INFO/DEBUG format: remove level tag for cleaner output
- Keep [WARNING] and [ERROR] tags for actual issues
- Add JOBS log level (15, between DEBUG and INFO) for make status
messages (start/error/success) so they don't flood INFO logs
Log levels: DEBUG (10) < JOBS (15) < INFO (20) < WARNING (30) < ERROR (40)
Example output:
[2026-01-27 10:30:45] DataJoint 2.0.0 connected to postgres@localhost:5432
[2026-01-27 10:30:46][JOBS]: Making {'key': 1} -> schema.Table
[2026-01-27 10:30:47][JOBS]: Success making {'key': 1} -> schema.Table
[2026-01-27 10:31:02][WARNING]: Table xyz not found
Users can filter job messages with DJ_LOG_LEVEL=INFO (hides JOBS)
or see them with DJ_LOG_LEVEL=JOBS or DJ_LOG_LEVEL=DEBUG.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
72cb512 to
41dad5d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
DJ_LOG_STREAMenv var to select stdout or stderr[WARNING]and[ERROR]tags for actual issuesJOBSlog level for make status messages (start/error/success)Environment Variables
DJ_LOG_LEVELDEBUG,JOBS,INFO,WARNING,ERRORINFODJ_LOG_STREAMstdout,stderrstdoutLog Levels
DJ_LOG_LEVEL=INFO— Default, hides job messagesDJ_LOG_LEVEL=JOBS— Shows job status messagesDJ_LOG_LEVEL=DEBUG— Shows everythingRationale
stdout vs stderr: The current logging appears with red highlighting in terminals/IDEs because Python's
StreamHandlerdefaults to stderr. Using stdout avoids this. Users needing stderr can setDJ_LOG_STREAM=stderr.JOBS level: Make status messages (start/error/success) were at DEBUG level, getting buried. A dedicated level between DEBUG and INFO allows filtering without losing them entirely. Running thousands of jobs won't flood INFO logs.
Example Output
Notes
datajoint.logging.logger🤖 Generated with Claude Code