Skip to content

Commit 2722a4d

Browse files
feat: add DJ_LOG_STREAM env var to select stdout/stderr
1 parent 87cd5b0 commit 2722a4d

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

src/datajoint/logging.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ def jobs(self, message, *args, **kwargs):
1919
logger = logging.getLogger(__name__.split(".")[0])
2020

2121
log_level = os.getenv("DJ_LOG_LEVEL", "info").upper()
22+
log_stream = os.getenv("DJ_LOG_STREAM", "stdout").lower()
2223

2324

2425
class LevelAwareFormatter(logging.Formatter):
@@ -34,9 +35,10 @@ def format(self, record):
3435
return f"[{timestamp}] {record.getMessage()}"
3536

3637

37-
# Use stdout for all logging (avoids red highlighting in terminals/IDEs)
38-
# Users needing stderr can configure their own handlers
39-
stream_handler = logging.StreamHandler(sys.stdout)
38+
# Select output stream: stdout (default, no red highlighting) or stderr
39+
# Configurable via DJ_LOG_STREAM=stdout|stderr
40+
output_stream = sys.stderr if log_stream == "stderr" else sys.stdout
41+
stream_handler = logging.StreamHandler(output_stream)
4042
stream_handler.setFormatter(LevelAwareFormatter())
4143

4244
logger.setLevel(level=log_level)

0 commit comments

Comments
 (0)