Van-Tam Nguyen

33 papers A* 4Journal 20Unranked 9
YearRankTypeTitle / Venue / Authors
2026 J jnl
Trans. Mach. Learn. Res.
Zhu Liao, Victor Quétu, Van-Tam Nguyen, Enzo Tartaglione
2026 J jnl
Expert Syst. Appl.
Yinghao Wang, Rayan Elrawas, Anh-Dung Nguyen, Maxime Girard, Pavlo Mozharovskyi, Enzo Tartaglione, Van-Tam Nguyen
2025 A* conf
ICML
Le-Trung Nguyen, Aël Quélennec, Van-Tam Nguyen, Enzo Tartaglione
2025 J jnl
CoRR
Le-Trung Nguyen, Aël Quélennec, Van-Tam Nguyen, Enzo Tartaglione
2025 J jnl
CoRR
Le-Trung Nguyen, Enzo Tartaglione, Van-Tam Nguyen
2025 J jnl
CoRR
Alaa Mazouz, Van-Tam Nguyen
2025 J jnl
CoRR
Aël Quélennec, Pavlo Mozharovskyi, Van-Tam Nguyen, Enzo Tartaglione
2025 J jnl
CoRR
Lorenzo Guerra, Thomas Chapuis, Guillaume Duc, Pavlo Mozharovskyi, Van-Tam Nguyen
2025 J jnl
CoRR
Aël Quélennec, Nour Hezbri, Pavlo Mozharovskyi, Van-Tam Nguyen, Enzo Tartaglione
2025 A* conf
AAAI
Zhu Liao, Nour Hezbri, Victor Quétu, Van-Tam Nguyen, Enzo Tartaglione
2024 conf
CSCS
Lorenzo Guerra, Linhan Xu, Paolo Bellavista, Thomas Chapuis, Guillaume Duc, Pavlo Mozharovskyi, Van-Tam Nguyen
2024 J jnl
CoRR
Lorenzo Guerra, Linhan Xu, Pavlo Mozharovskyi, Paolo Bellavista, Thomas Chapuis, Guillaume Duc, Van-Tam Nguyen
2024 A* conf
NeurIPS
Le-Trung Nguyen, Aël Quélennec, Enzo Tartaglione, Samuel Tardieu, Van-Tam Nguyen
2024 J jnl
CoRR
Le-Trung Nguyen, Aël Quélennec, Enzo Tartaglione, Samuel Tardieu, Van-Tam Nguyen
2024 conf
ECCV (85)
Rémi Nahon, Ivan Luiz De Moura Matos, Van-Tam Nguyen, Enzo Tartaglione
2024 J jnl
CoRR
Rémi Nahon, Ivan Luiz De Moura Matos, Van-Tam Nguyen, Enzo Tartaglione
2024 conf
ECCV Workshops (11)
Maxime Girard, Victor Quétu, Samuel Tardieu, Van-Tam Nguyen, Enzo Tartaglione
2024 J jnl
CoRR
Maxime Girard, Victor Quétu, Samuel Tardieu, Van-Tam Nguyen, Enzo Tartaglione
2024 J jnl
CoRR
Zhu Liao, Victor Quétu, Van-Tam Nguyen, Enzo Tartaglione
2024 J jnl
J. Real Time Image Process.
Alaa Eddine Mazouz, Van-Tam Nguyen
2024 J jnl
CoRR
Zhu Liao, Nour Hezbri, Victor Quétu, Van-Tam Nguyen, Enzo Tartaglione
2024 conf
WACV (Workshops)
Aël Quélennec, Enzo Tartaglione, Pavlo Mozharovskyi, Van-Tam Nguyen
2023 conf
SSP
Van-Tam Nguyen, Enzo Tartaglione, Tuan Dinh
2023 conf
ICCV (Workshops)
Zhu Liao, Victor Quétu, Van-Tam Nguyen, Enzo Tartaglione
2023 J jnl
CoRR
Zhu Liao, Victor Quétu, Van-Tam Nguyen, Enzo Tartaglione
2023 conf
PKDD/ECML Workshops (1)
Rémi Nahon, Nasim Bagheri, Giovanna Varni, Enzo Tartaglione, Van-Tam Nguyen
2023 A* conf
ICCV
Rémi Nahon, Van-Tam Nguyen, Enzo Tartaglione
2023 J jnl
CoRR
Rémi Nahon, Van-Tam Nguyen, Enzo Tartaglione
2023 conf
SSP
Yinghao Wang, Rémi Nahon, Enzo Tartaglione, Pavlo Mozharovskyi, Van-Tam Nguyen
2023 J jnl
CoRR
Yinghao Wang, Rémi Nahon, Enzo Tartaglione, Pavlo Mozharovskyi, Van-Tam Nguyen
2023 conf
ICCV (Workshops)
Ziyu Li, Enzo Tartaglione, Van-Tam Nguyen
2023 J jnl
CoRR
Ziyu Lin, Enzo Tartaglione, Van-Tam Nguyen
2023 J jnl
CoRR
Aël Quélennec, Enzo Tartaglione, Pavlo Mozharovskyi, Van-Tam Nguyen
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