Kaiyuan Ji

22 papers A* 2B 2Journal 17Unranked 1
YearRankTypeTitle / Venue / Authors
2026 J jnl
CoRR
Kaiyuan Ji, Yixuan Gao, Lu Sun, Yushuo Zheng, Zijian Chen, Jianbo Zhang, Xiangyang Zhu, Yuan Tian, Zicheng Zhang, Guangtao Zhai
2026 J jnl
IEEE Trans. Inf. Theory
Kaiyuan Ji, Hemant K. Mishra, Milán Mosonyi, Mark M. Wilde
2026 J jnl
Displays
Shuangqing Wang, Kaiyuan Ji, Yushuo Zheng, Zhihan Wu, Xiaorong Zhu, Zijian Chen, Lu Sun, Shuo Wang, Jianbo Zhang, Zicheng Zhang, Xiangyang Zhu, Yuan Tian, Jing Han, Lele Hao, Zhiyu Chen, Jiannan Liu
2026 A* conf
AAAI
Kaiyuan Ji, Yijin Guo, Zicheng Zhang, Xiangyang Zhu, Yuan Tian, Ning Liu
2026 J jnl
CoRR
Bohan Liang, Zijian Chen, Qi Jia, Kaiwei Zhang, Kaiyuan Ji, Guangtao Zhai
2026 J jnl
CoRR
Xiangyang Zhu, Yuan Tian, Qi Jia, Kaiwei Zhang, Zicheng Zhang, Chunyi Li, Kaiyuan Ji, Dongrui Liu, Zijian Chen, Lu Sun, Renrui Zhang, Yan Teng, Jing Shao, Wei Sun, Xia Hu, Yu Qiao, Guangtao Zhai
2025 J jnl
CoRR
Kaiyuan Ji, Bartosz Regula
2025 B conf
ISIT
Kaiyuan Ji, Hemant K. Mishra, Milán Mosonyi, Mark M. Wilde
2025 J jnl
CoRR
Kaiyuan Ji, Hemant K. Mishra, Milán Mosonyi, Mark M. Wilde
2025 J jnl
IEEE Trans. Inf. Theory
Kaiyuan Ji, Eric Chitambar
2025 J jnl
CoRR
Kaiyuan Ji, Gilad Gour, Mark M. Wilde
2025 J jnl
CoRR
Yijin Guo, Kaiyuan Ji, Xiaorong Zhu, Junying Wang, Farong Wen, Chunyi Li, Zicheng Zhang, Guangtao Zhai
2025 J jnl
CoRR
Kaiyuan Ji, Yijin Guo, Zicheng Zhang, Xiangyang Zhu, Yuan Tian, Ning Liu, Guangtao Zhai
2025 J jnl
Displays
Wenzhong Jin, Yilan Sun, Kaiyuan Ji, Xiaoyan Jiang, Yufeng Hu, Jinwu Wang, Jiannan Liu
2025 J jnl
Displays
Chengbang Wang, Zijia Liu, Liangshi Hao, Shaohua Chen, Rongchang Guo, Lai Wei, Kaiyuan Ji, Fubo Wang, Bin Xu
2025 J jnl
CoRR
Kaiyuan Ji, Seth Lloyd, Mark M. Wilde
2025 A* conf
CVPR
Yuan Tian, Kaiyuan Ji, Rongzhao Zhang, Yankai Jiang, Chunyi Li, Xiaosong Wang, Guangtao Zhai
2025 J jnl
CoRR
Yuan Tian, Kaiyuan Ji, Rongzhao Zhang, Yankai Jiang, Chunyi Li, Xiaosong Wang, Guangtao Zhai
2024 conf
HNTS-MRG@MICCAI
Kaiyuan Ji, Zhihan Wu, Jing Han, Jun Jia, Guangtao Zhai, Jiannan Liu
2024 J jnl
CoRR
Kaiyuan Ji, Hemant K. Mishra, Milán Mosonyi, Mark M. Wilde
2023 B conf
ISIT
Kaiyuan Ji, Eric Chitambar
2023 J jnl
CoRR
Kaiyuan Ji, Bartosz Regula, Mark M. Wilde
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