Xi Jin

29 papers B 1C 1Misc 1Journal 19Unranked 7
YearRankTypeTitle / Venue / Authors
2026 J jnl
Expert Syst. Appl.
Ming Wan, Xueqing Liu, Shengbao An, Aiping Tan, Xi Jin, Chuan Sheng
2026 J jnl
Memetic Comput.
Yue Yin, Xi Jin, Minghao Yin, Yupeng Zhou
2025 J jnl
J. Supercomput.
Yupeng Zhou, Hanhui Liu, Xi Jin, Yue Yin, Shuli Hu, Minghao Yin
2025 J jnl
Expert Syst. J. Knowl. Eng.
Xi Jin
2025 J jnl
Ad Hoc Networks
Zhonghui Wang, Xi Jin, Qingsong Zhao, Feng Wang, Khaled Sabahein
2024 conf
EITCE
Xi Jin
2024 J jnl
Int. J. Web Based Learn. Teach. Technol.
Xi Jin
2024 J jnl
IEEE Trans. Ind. Informatics
Chengjiu Zhu, Haidong Yang, Xi Jin, Kangkang Xu, Wenjing Shen
2024 J jnl
IEEE Trans. Cybern.
Chengjiu Zhu, Haidong Yang, Xi Jin, Kangkang Xu, Hongcheng Li
2024 J jnl
Comput. Electr. Eng.
Yanfeng Chen, Xi Jin, Lixiao Gao
2024 C conf
ICIS
Xi Jin, Hanbing Xue
2023 J jnl
J. Comput. Des. Eng.
Xi Jin, Daibiao Wu, Haidong Yang, Chengjiu Zhu, Wenjing Shen, Kangkang Xu
2023 J jnl
IEEE Trans. Ind. Informatics
Kangkang Xu, Haidong Yang, Chengjiu Zhu, Xi Jin, Bi Fan, Luoke Hu
2023 J jnl
Sensors
Xi Jin, Changbum Ryan Ahn, Jinwoo Kim, Moonseo Park
2022 conf
ITSC
Shuai Wen, Xin Gu Shahd Omar, Xi Jin, Zhengbing He
2022 J jnl
J. Syst. Sci. Complex.
Jun Li, Hengxuan Gao, Yongjun Li, Xi Jin, Liang Liang
2021 J jnl
IEEE Access
Kangkang Xu, Xi Tan, Bi Fan, Tengfei Xiao, Xi Jin, Chengjiu Zhu
2019 conf
NLPCC (2)
Haiming Wu, Yue Zhang, Xi Jin, Yun Xue, Ziwen Wang
2017 J jnl
Memetic Comput.
Yihong Zhang, Xi Jin, Zhijie Wang
2017 J jnl
J. Chem. Inf. Model.
Chen Jiang, Xi Jin
2016 J jnl
J. Chem. Inf. Model.
Chen Jiang, Xi Jin, Ying Dong, Ming Chen
2013 conf
ITQM
Yongjie Zhang, Lina Feng, Xi Jin, Dehua Shen
2012 Misc conf
FCCM
Jing Yan, Zhanxiang Zhao, Ning-Yi Xu, Xi Jin, Lin-Tao Zhang, Feng-Hsiung Hsu
2011 conf
FPT
Zhanxiang Zhao, Xi Jin, Xin Zhang
2009 B conf
SMC
Wenyan Wu, Xi Jin, Jinliang Gao
2008 conf
Asia International Conference on Modelling and Simulation
Yan Sun, Xin Zhang, Xi Jin
2008 conf
SoSE
Yan Sun, Xin Zhang, Xi Jin
2008 J jnl
Int. J. Model. Identif. Control.
Xi Jin, Jinliang Gao, Wenyan Wu
2006 J jnl
Int. J. Inf. Technol. Decis. Mak.
Wei Zhang, Yongjie Zhang, Xiong Xiong, Xi Jin
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