Skip to content

Commit 6608c03

Browse files
authored
Use REZ_LOGGING_CONF in package payload cache daemon (#1969)
Update package cache to respect external logging (reading the REZ_LOGGING_CONF environment variable) Signed-off-by: Bryce Gattis <[email protected]>
1 parent be6dc49 commit 6608c03

File tree

3 files changed

+51
-4
lines changed

3 files changed

+51
-4
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
[loggers]
2+
keys=root,rez-pkg-cache
3+
4+
[handlers]
5+
keys=myTestingConsoleHandler
6+
7+
[formatters]
8+
keys=simpleFormatter
9+
10+
[logger_root]
11+
level=DEBUG
12+
handlers=myTestingConsoleHandler
13+
14+
[logger_rez-pkg-cache]
15+
level=DEBUG
16+
handlers=myTestingConsoleHandler
17+
qualname=rez-pkg-cache
18+
propagate=0
19+
20+
[handler_myTestingConsoleHandler]
21+
class=StreamHandler
22+
level=DEBUG
23+
formatter=simpleFormatter
24+
args=(sys.stdout,)
25+
26+
[formatter_simpleFormatter]
27+
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s

src/rez/package_cache.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import platform
1616
import time
1717
import logging
18+
import logging.config
1819
import random
1920
import threading
2021
from contextlib import contextmanager
@@ -846,6 +847,11 @@ def _init_logging(self):
846847
manually (hence the logging to stdout also)
847848
"""
848849
logger = logging.getLogger("rez-pkg-cache")
850+
logging_conf = os.getenv("REZ_LOGGING_CONF")
851+
if logging_conf:
852+
logging.config.fileConfig(logging_conf, disable_existing_loggers=False)
853+
return logger
854+
849855
logger.setLevel(logging.INFO)
850856
logger.propagate = False
851857

src/rez/tests/test_package_cache.py

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,19 @@
55
"""
66
Test package caching.
77
"""
8+
import logging
9+
import os
10+
import os.path
11+
import time
12+
import subprocess
13+
814
from rez.tests.util import TestBase, TempdirMixin, restore_os_environ, \
915
install_dependent
1016
from rez.packages import get_package
1117
from rez.package_cache import PackageCache
1218
from rez.resolved_context import ResolvedContext
1319
from rez.exceptions import PackageCacheError
1420
from rez.utils.filesystem import canonical_path
15-
import os
16-
import os.path
17-
import time
18-
import subprocess
1921

2022

2123
class TestPackageCache(TestBase, TempdirMixin):
@@ -123,6 +125,18 @@ def test_cache_fail_per_package(self):
123125
with self.assertRaises(PackageCacheError):
124126
pkgcache.add_variant(variant)
125127

128+
def test_external_logging_config(self):
129+
"""Test that external logging is respected if configured."""
130+
config_file_path = canonical_path(self.data_path("config", "logging_config_test.conf"))
131+
with restore_os_environ():
132+
os.environ["REZ_LOGGING_CONF"] = config_file_path
133+
pkgcache = self._pkgcache()
134+
pkgcache._init_logging()
135+
logger = logging.getLogger('rez-pkg-cache')
136+
self.assertEqual(len(logger.handlers), 1)
137+
self.assertEqual(logger.handlers[0].__class__, logging.StreamHandler)
138+
self.assertEqual(logger.handlers[0].level, logging.DEBUG)
139+
126140
@install_dependent()
127141
def test_caching_on_resolve(self):
128142
"""Test that cache is updated as expected on resolved env."""

0 commit comments

Comments
 (0)