Neal Mazur

29 papers A 2Journal 26Unranked 1
YearRankTypeTitle / Venue / Authors
2025 J jnl
J. Comput. Sci. Coll.
Sarbani Banerjee, Neal Mazur
2024 J jnl
Pattern Recognit.
Zhiqin Zhu, Ziyu Wang, Guanqiu Qi, Neal Mazur, Pan Yang, Yu Liu
2024 J jnl
Expert Syst. Appl.
Zhiqin Zhu, Xin Zheng, Guanqiu Qi, Yifei Gong, YuanYuan Li, Neal Mazur, Baisen Cong, Xinbo Gao
2023 J jnl
CAAI Trans. Intell. Technol.
Zhiqin Zhu, Zheng Yao, Guanqiu Qi, Neal Mazur, Pan Yang, Baisen Cong
2023 J jnl
Comput. Biol. Medicine
Zhiqin Zhu, Zheng Yao, Xin Zheng, Guanqiu Qi, YuanYuan Li, Neal Mazur, Xinbo Gao, Yifei Gong, Baisen Cong
2022 J jnl
CoRR
Zhiqin Zhu, Zheng Yao, Guanqiu Qi, Neal Mazur, Baisheng Cong
2022 J jnl
Simul. Model. Pract. Theory
Xinghua Huang, Guanqiu Qi, Neal Mazur, Yi Chai
2022 J jnl
Remote. Sens.
Guanqiu Qi, Yuanchuan Zhang, Kunpeng Wang, Neal Mazur, Yang Liu, Devanshi Malaviya
2022 J jnl
IEEE Trans. Ind. Informatics
Jian Sun, Guanqiu Qi, Neal Mazur, Zhiqin Zhu
2021 J jnl
Algorithms
Chengyan Zhong, Guanqiu Qi, Neal Mazur, Sarbani Banerjee, Devanshi Malaviya, Gang Hu
2021 J jnl
IEEE Trans. Instrum. Meas.
Zhiqin Zhu, Hongyan Wei, Gang Hu, YuanYuan Li, Guanqiu Qi, Neal Mazur
2021 J jnl
Comput.
Guanqiu Qi, Gang Hu, Neal Mazur, Huahua Liang, Matthew Haner
2021 J jnl
Remote. Sens.
Zhiqin Zhu, Yaqin Luo, Hongyan Wei, Yong Li, Guanqiu Qi, Neal Mazur, YuanYuan Li, Penglong Li
2021 J jnl
J. Vis. Commun. Image Represent.
Zhiqin Zhu, Yaqin Luo, Sixin Chen, Guanqiu Qi, Neal Mazur, Chengyan Zhong, Qiwang Li
2021 J jnl
J. Comput. Sci. Coll.
Sarbani Banerjee, Neal Mazur
2021 J jnl
J. Imaging
Guanqiu Qi, Gang Hu, Xiaofei Wang, Neal Mazur, Zhiqin Zhu, Matthew Haner
2021 J jnl
Simul. Model. Pract. Theory
Zhiqin Zhu, Fancheng Zeng, Guanqiu Qi, YuanYuan Li, Hou Jie, Neal Mazur
2021 J jnl
Remote. Sens.
Zhiqin Zhu, Yaqin Luo, Guanqiu Qi, Jun Meng, Yong Li, Neal Mazur
2019 J jnl
J. Comput. Sci. Coll.
Sarbani Banerjee, Neal Mazur, Christopher Shively, Joseph Zawicki
2019 A conf
SIGCSE
Christopher Shively, Sarbani Banerjee, Neal Mazur, Joseph Zawicki
2018 A conf
SIGCSE
Neal Mazur, Joseph Zawicki, Sarbani Banerjee
2018 J jnl
J. Comput. Sci. Coll.
Christopher Shively, Sarbani Banerjee, Neal Mazur, Joseph Zawicki
2018 J jnl
J. Comput. Sci. Coll.
Joseph Zawicki, Sarbani Banerjee, Neal Mazur, Christopher Shively
2018 J jnl
J. Comput. Sci. Coll.
Sarbani Banerjee, Neal Mazur
2017 J jnl
J. Comput. Sci. Coll.
Neal Mazur, Sarbani Banerjee, Ramona Santa Maria
2007 conf
FECS
Neal Mazur
2000 J jnl
J. Comput. Sci. Coll.
Michael Kuhrt, Neal Mazur
1986 J jnl
IEEE J. Robotics Autom.
Richard L. Madarász, Loren C. Heiny, Robert F. Cromp, Neal Mazur
1982 J jnl
Inf. Sci.
Nicholas V. Findler, Neal Mazur, Bede McCall
redb/logging_utils.py
← Index redb/logging_utils.py python
"""
Logging utilities and shared enums for REDB.

Contains the ImportResult enum, log formatters, and logger setup functions
used across the ingestor pipeline.
"""
import logging
from logging.handlers import QueueHandler
import os
from enum import Enum


class ImportResult(Enum):
    CORRECTLY = 0
    PARTIALLY = 1
    FAILED = 2
    PENDING = 3
    SKIPPED = 4


class FileNameFormatter(logging.Formatter):
    def format(self, record):
        record.filenameinfo = getattr(record, "filenameinfo", "unknown")
        return super().format(record)


def setup_logger(log_queue, filename):
    logger = logging.getLogger(filename)
    if not logger.handlers:
        if os.getenv("SERVER_ENV") == "prod":
            logger.setLevel(logging.INFO)
        else:
            logger.setLevel(logging.DEBUG)
        handler = QueueHandler(log_queue)
        logger.addHandler(handler)
        logger.propagate = False  # Prevent propagation to parent loggers
    return logger


def logger_thread(log_queue, log_file):
    handler = logging.FileHandler(log_file)
    formatter = FileNameFormatter(
        "%(asctime)s - %(filenameinfo)s - %(levelname)s - %(message)s"
    )
    handler.setFormatter(formatter)

    while True:
        try:
            record = log_queue.get()
            if record is None:
                break
            # Format and write the log record
            message = formatter.format(record)
            handler.stream.write(message + "\n")
            handler.stream.flush()
        except Exception:
            import traceback
            import sys

            print("[ERR] Error in logger thread:", file=sys.stderr)
            traceback.print_exc(file=sys.stderr)


def setup_direct_logger(log_file, filename, pid=None):
    """Setup a logger that writes directly to the log file without using a queue."""
    # Create a unique logger name using the process ID
    logger_name = f"{filename}_{pid}" if pid else filename
    logger = logging.getLogger(logger_name)

    if not logger.handlers:
        handler = logging.FileHandler(log_file)
        formatter = logging.Formatter("%(asctime)s - %(filenameinfo)s - %(levelname)s - %(message)s")
        handler.setFormatter(formatter)
        logger.addHandler(handler)

        if os.getenv("SERVER_ENV") == "prod":
            logger.setLevel(logging.INFO)
        else:
            logger.setLevel(logging.DEBUG)

    # Add filename info to the logger's extra info
    extra = {"filenameinfo": filename}
    logger = logging.LoggerAdapter(logger, extra)

    return logger