Xiaohui Zhang

31 papers B 1Journal 28Unranked 2
YearRankTypeTitle / Venue / Authors
2026 J jnl
Ad Hoc Networks
Ling Xing, Bing Li, Kaikai Deng, Jianping Gao, Honghai Wu, Huahong Ma, Xiaohui Zhang
2026 J jnl
Phys. Commun.
Shihao Guo, Xiaohui Zhang, Gaoyuan Zhang
2026 J jnl
Digit. Signal Process.
Heyang Yuan, Xiaohui Zhang, Ling Xing, Honghai Wu, Xiaoying Lu
2025 J jnl
IEEE Trans. Aerosp. Electron. Syst.
Xiaoying Lu, Zishu He, Ling Xing, Honghai Wu, Xiaohui Zhang
2025 J jnl
Trans. Emerg. Telecommun. Technol.
Huahong Ma, Jingyun You, Honghai Wu, Ling Xing, Xiaohui Zhang
2025 J jnl
Wirel. Pers. Commun.
Huahong Ma, Jingyun You, Honghai Wu, Ling Xing, Xiaohui Zhang
2025 J jnl
IEEE Internet Things J.
Ling Xing, Pengcheng Zhao, Jianping Gao, Honghai Wu, Huahong Ma, Xiaohui Zhang
2025 J jnl
Complex Intell. Syst.
Ling Xing, Jinxin Liu, Qi Zhang, Honghai Wu, Huahong Ma, Xiaohui Zhang
2025 J jnl
Digit. Signal Process.
Ling Xing, Rui Jian, Xiaohui Zhang, Honghai Wu
2025 J jnl
Ad Hoc Networks
Huahong Ma, Shuangjin Li, Honghai Wu, Ling Xing, Xiaohui Zhang
2025 J jnl
IEEE Trans. Veh. Technol.
Honghai Wu, Bowen Ji, Huahong Ma, Xiaohui Zhang, Ling Xing, Jianping Gao
2025 J jnl
IEEE Trans. Veh. Technol.
Xiaohui Zhang, Ling Xing, Honghai Wu
2024 J jnl
IEEE Trans. Comput. Soc. Syst.
Ling Xing, Yuanhao Huang, Qi Zhang, Honghai Wu, Huahong Ma, Xiaohui Zhang
2024 J jnl
Phys. Commun.
Huahong Ma, Yuxiang Gu, Honghai Wu, Ling Xing, Xiaohui Zhang
2024 J jnl
Complex Intell. Syst.
Ling Xing, Shiyu Li, Qi Zhang, Honghai Wu, Huahong Ma, Xiaohui Zhang
2024 J jnl
J. King Saud Univ. Comput. Inf. Sci.
Ling Xing, Shiyu Li, Qi Zhang, Honghai Wu, Huahong Ma, Xiaohui Zhang
2024 J jnl
IEEE Trans. Veh. Technol.
Xiaohui Zhang
2024 J jnl
IEEE Trans. Veh. Technol.
Xiaohui Zhang, Ling Xing, Honghai Wu, Baofeng Ji, Gaoyuan Zhang
2024 J jnl
IEEE Internet Things J.
Honghai Wu, Baibing Wang, Huahong Ma, Xiaohui Zhang, Ling Xing
2024 J jnl
IEEE Trans. Veh. Technol.
Xiaona Song, Chenglin Wu, Shuai Song, Xiaohui Zhang, Inés Tejado
2024 J jnl
Comput. Electr. Eng.
Xiaohui Zhang, Chaoqun Ding, Honghai Wu, Ling Xing
2024 J jnl
Comput. Networks
Ling Xing, Bing Li, Lulu Liu, Yuanhao Huang, Honghai Wu, Huahong Ma, Xiaohui Zhang
2023 J jnl
Sensors
Ling Xing, Kun Wang, Honghai Wu, Huahong Ma, Xiaohui Zhang
2022 J jnl
Comput. Commun.
Gaoyuan Zhang, Kai Chen, Congfang Ma, M. Sravan Kumar Reddy, Baofeng Ji, Yongen Li, Congzheng Han, Xiaohui Zhang, Zhumu Fu
2022 J jnl
IEEE Trans. Veh. Technol.
Xiaohui Zhang, Huacheng Zeng, Baofeng Ji, Gaoyuan Zhang
2021 J jnl
Phys. Commun.
Gaoyuan Zhang, Haiqiong Li, Congzheng Han, Congyu Shi, Xiaohui Zhang
2020 conf
ICCT
Ruizhe Zhang, Xiaohui Zhang, Shouyi Yang
2017 J jnl
IEEE Trans. Veh. Technol.
Xiaohui Zhang, Hongxiang Li, Wenqi Liu, Junling Qiao
2015 J jnl
IEEE Commun. Lett.
Xiaohui Zhang, Hongxiang Li, Yanhui Lu, Bing Zhou
2015 conf
ICC
Xiaohui Zhang, Hongxiang Li
2015 B conf
GLOBECOM
Chen Cao, Hongxiang Li, Zixia Hu, Wenqi Liu, Xiaohui Zhang
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