Skip to content

Commit 74ff4f3

Browse files
committed
update hpc_connect logging
1 parent 7913be7 commit 74ff4f3

2 files changed

Lines changed: 21 additions & 23 deletions

File tree

src/_canary/util/logging.py

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,6 @@
11
# Copyright NTESS. See COPYRIGHT file for details.
22
#
33
# SPDX-License-Identifier: MIT
4-
5-
# /Formatter
6-
# Copyright NTESS. See COPYRIGHT file for details.
7-
#
8-
# SPDX-License-Identifier: MIT
9-
104
import datetime
115
import json
126
import logging as builtin_logging
@@ -172,7 +166,7 @@ def __init__(
172166
max_interval: float = 120.0,
173167
growth: float = 1.6,
174168
) -> None:
175-
self.logger = get_logger(name)
169+
self.logger_name = name
176170
self.min_interval = min_interval
177171
self.max_interval = max_interval
178172
self.growth = growth
@@ -190,7 +184,7 @@ def emit(self, signature: tuple[str, ...], msg: str) -> None:
190184
self._last_emit = 0.0
191185

192186
if now - self._last_emit >= self._interval:
193-
self.logger.debug(msg)
187+
get_logger(self.logger_name).debug(msg)
194188
self._last_emit = now
195189
self._interval = min(self._interval * self.growth, self.max_interval)
196190

@@ -201,10 +195,13 @@ def emit(self, signature: tuple[str, ...], msg: str) -> None:
201195
def get_logger(name: str | None = None) -> CanaryLogger:
202196
if name is None:
203197
name = root_log_name
204-
parts = name.split(".")
205-
if parts[0] != root_log_name:
206-
parts.insert(0, root_log_name)
207-
name = ".".join(parts)
198+
else:
199+
parts = name.split(".")
200+
if parts[0] == "_canary":
201+
parts[0] = root_log_name
202+
elif parts[0] != root_log_name:
203+
parts.insert(0, root_log_name)
204+
name = ".".join(parts)
208205
logger = cast(CanaryLogger, builtin_logging.getLogger(name))
209206
return logger
210207

@@ -306,20 +303,20 @@ def get_level() -> int:
306303

307304

308305
def info(*args, **kwargs):
309-
logger = get_logger()
310-
logger.info(*args, **kwargs)
306+
get_logger().info(*args, **kwargs)
311307

312308

313309
def warning(*args, **kwargs):
314-
logger = get_logger()
315-
logger.warning(*args, **kwargs)
310+
get_logger().warning(*args, **kwargs)
316311

317312

318313
def error(*args, **kwargs):
319-
logger = get_logger()
320-
logger.error(*args, **kwargs)
314+
get_logger().error(*args, **kwargs)
321315

322316

323317
def critical(*args, **kwargs):
324-
logger = get_logger()
325-
logger.critical(*args, **kwargs)
318+
get_logger().critical(*args, **kwargs)
319+
320+
321+
def exception(*args, **kwargs):
322+
get_logger().exception(*args, **kwargs)

src/canary_hpc/batchexec.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,18 +27,17 @@
2727
class HPCConnectRunner:
2828
def __init__(self, backend: hpc_connect.HPCSubmissionManager) -> None:
2929
self.backend = backend
30-
self.alogger = canary.logging.AdaptiveDebugLogger(__name__)
30+
self.alogger = canary.logging.AdaptiveDebugLogger(__name__, max_interval=300.0)
3131

3232
def execute(self, batch: "TestBatch") -> int | None:
3333
logger.debug(f"Starting {batch} on pid {os.getpid()}")
3434

3535
canary.Workspace.load()
3636

3737
# Force hpc_connect logger to use the root logger setup by canary
38-
hpc = hpc_connect.get_logger("hpc_connect")
38+
hpc = logging.getLogger("hpc_connect")
3939
hpc.handlers.clear()
4040
hpc.propagate = True
41-
hpc.setLevel(logging.DEBUG)
4241

4342
with batch.workspace.enter():
4443
proc = self.submit(batch)
@@ -51,6 +50,8 @@ def execute(self, batch: "TestBatch") -> int | None:
5150
self.alogger.emit(("",), f"{batch}.poll() = {rc}")
5251
if rc is not None:
5352
break
53+
if self.alogger._interval >= self.alogger.max_interval:
54+
self.alogger._interval = self.alogger.min_interval
5455
except Exception:
5556
logger.exception("Batch %s: polling job failed!" % batch.id[:7])
5657
break

0 commit comments

Comments
 (0)