Haiwei Chen

29 papers A* 5B 1C 1Misc 1Journal 19Unranked 2
YearRankTypeTitle / Venue / Authors
2026 J jnl
CoRR
Junyi Ouyang, Wenbin Teng, Gonglin Chen, Yajie Zhao, Haiwei Chen
2026 J jnl
CoRR
Jing Yang, Krithika Dharanikota, Emily Jia, Haiwei Chen, Yajie Zhao
2025 J jnl
CoRR
Wenbin Teng, Gonglin Chen, Haiwei Chen, Yajie Zhao
2025 J jnl
CoRR
Yunxuan Cai, Sitao Xiang, Zongjian Li, Haiwei Chen, Yajie Zhao
2025 J jnl
CoRR
Wenbin Teng, Gonglin Chen, Haiwei Chen, Yajie Zhao
2025 conf
3DV
Gonglin Chen, Jinsen Wu, Haiwei Chen, Wenbin Teng, Zhiyuan Gao, Andrew Feng, Rongjun Qin, Yajie Zhao
2025 J jnl
CoRR
Haolin Xiong, Tianwen Fu, Pratusha Bhuvana Prasad, Yunxuan Cai, Haiwei Chen, Wenbin Teng, Hanyuan Xiao, Yajie Zhao
2025 A* conf
CVPR
Gonglin Chen, Tianwen Fu, Haiwei Chen, Wenbin Teng, Hanyuan Xiao, Yajie Zhao
2025 J jnl
CoRR
Gonglin Chen, Tianwen Fu, Haiwei Chen, Wenbin Teng, Hanyuan Xiao, Yajie Zhao
2024 A* conf
CVPR
Haiwei Chen, Yajie Zhao
2024 J jnl
CoRR
Haiwei Chen, Yajie Zhao
2024 J jnl
CoRR
Gonglin Chen, Jinsen Wu, Haiwei Chen, Wenbin Teng, Zhiyuan Gao, Andrew Feng, Rongjun Qin, Yajie Zhao
2023 J jnl
IEEE Trans. Instrum. Meas.
Zhiyan Quan, Xiaocui Tang, Haifang Shang, Sihong Pan, Haiwei Chen, Yi Tang, Yang Gao, Xiaotong Zhang
2023 J jnl
IEEE Trans. Cybern.
Hongping Gan, Yang Gao, Chunyi Liu, Haiwei Chen, Tao Zhang, Feng Liu
2023 J jnl
Sensors
Haiwei Chen, Guohui Zhou, Huixin Jiang
2022 A* conf
CVPR
Haiwei Chen, Jiayi Liu, Weikai Chen, Shichen Liu, Yajie Zhao
2022 J jnl
CoRR
Haiwei Chen, Jiayi Liu, Weikai Chen, Shichen Liu, Yajie Zhao
2022 J jnl
ACM Trans. Graph.
Shichen Liu, Yunxuan Cai, Haiwei Chen, Yichao Zhou, Yajie Zhao
2021 J jnl
IEEE Trans. Biomed. Eng.
Chunyi Liu, Lei Guo, Mingyan Li, Haiwei Chen, Jin Jin, Wufan Chen, Feng Liu, Stuart Crozier
2021 A* conf
CVPR
Haiwei Chen, Shichen Liu, Weikai Chen, Hao Li, Randall W. Hill Jr.
2021 J jnl
CoRR
Haiwei Chen, Shichen Liu, Weikai Chen, Hao Li
2021 J jnl
IEEE Trans. Biomed. Eng.
Haiwei Chen, Lei Guo, Mingyan Li, Aurelien Destruel, Chunyi Liu, Ewald Weber, Feng Liu, Stuart Crozier
2020 J jnl
CoRR
Sitao Xiang, Yuming Gu, Pengda Xiang, Mingming He, Koki Nagano, Haiwei Chen, Hao Li
2019 J jnl
Appl. Soft Comput.
Junhua Hu, Li Pan, Yan Yang, Haiwei Chen
2018 A* conf
VR
Haiwei Chen, Samantha Chen, Evan Suma Rosenberg
2017 C conf
CGI
Haiwei Chen, Henry Fuchs
2017 conf
I3D
Haiwei Chen, Henry Fuchs
2017 B conf
Image Processing
Haiwei Chen, François Budin, Jean Noel, Juan-Carlos Prieto, John H. Gilmore, Jerod Rasmussen, Pathik D. Wadhwa, Sonja Entringer, Claudia Buss, Martin Styner
2016 Misc conf
AMIA
Arlene Chung, Haiwei Chen, Grace Shin, Ketan K. Mane, Hye-Chung Kum
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