Ioannis Markopoulos

15 papers B 2Misc 2Journal 2Unranked 9
YearRankTypeTitle / Venue / Authors
2024 J jnl
CoRR
Christophoros Christophorou, Iacovos Ioannou, Vasos Vassiliou, Loizos Christofi, John S. Vardakas, Erin E. Seder, Carla-Fabiana Chiasserini, Marius Iordache, Chaouki Ben Issaid, Ioannis Markopoulos, Giulio Franzese, Tanel Järvet, Christos V. Verikoukis
2024 conf
HCI (66)
George Margetis, Eirini Sykianaki, Ioannis Chatzakis, Emmanouil Adamakis, Stavroula Ntoa, Konstantinos C. Apostolakis, Ioannis Markopoulos, Constantine Stephanidis
2023 conf
GLOBECOM (Workshops)
Christophoros Christophorou, Iacovos Ioannou, Vasos Vassiliou, Loizos Christofi, John S. Vardakas, Erin E. Seder, Carla-Fabiana Chiasserini, Marius Iordache, Chaouki Ben Issaid, Ioannis Markopoulos, Giulio Franzese, Tanel Järvet, Christos V. Verikoukis
2023 Misc conf
ICIN
Hamzeh Khalili, Sarang Kahvazadeh, Jane Frances Pajo, Ronan Frizzell, Andrea Castelli, Martin Tolan, Ioannis Markopoulos, Robin Ribback, Espen Erikstad, Didier Nicholson, Kostas Ramantas, Loizos Christofi, Christos V. Verikoukis
2023 conf
HCI (36)
George Margetis, Konstantinos C. Apostolakis, Stavroula Ntoa, Ioannis Chatzakis, Eirini Sykianaki, Ioannis Markopoulos, Constantine Stephanidis
2022 conf
MeditCom
Dimitris Vordonis, Dimitris Giannopoulos, Panagiotis Papaioannou, Christos Tranoris, Spyros G. Denazis, Ran Rahav, Baruch Altman, Anne-Marie Bosneag, Shubham Jain, Udi Margolin, Bader Mawasy, Konstantinos Oikonomou, Ioannis Markopoulos
2021 conf
MeditCom
Apostolos Siokis, Kostas Ramantas, George Margetis, Constantine Stephanidis, Loizos Christofi, Kostis E. Tzanettis, Håkon Lønsethagen, Ioannis Markopoulos, Luis Sanabria-Russo, Hatim Chergui, Christos V. Verikoukis
2021 conf
MeditCom
Luigi Briguglio, Per-Jonny Nesse, Andrea Di Giglio, Carmela Occhipinti, Patrick Durkin, Ioannis Markopoulos
2021 conf
EuCNC/6G Summit
Konstantinos C. Apostolakis, George Margetis, Constantine Stephanidis, Jean-Michel Duquerrois, Laurent Drouglazet, Arthur Lallet, Serge Delmas, Luís Cordeiro, Andre S. Gomes, Marta Amor, Almudena Díaz-Zayas, Christos V. Verikoukis, Kostas Ramantas, Ioannis Markopoulos
2021 conf
MeditCom
Panagiotis Papaioannou, Dimitris Giannopoulos, Christos Tranoris, Spyros G. Denazis, Baruch Altman, Ran Rahav, Ioannis Markopoulos
2021 J jnl
Multim. Tools Appl.
Stavroula Ntoa, George Margetis, Fiona Rivera, Michael Evans, Ilia Adami, Georgios Mathioudakis, Rajitha Weerakkody, George Metaxakis, Ioannis Markopoulos, Marta Mrak, Constantine Stephanidis
2020 Misc conf
ATSIP
Aymen Mtibaa, Mohamed Amine Hmani, Dijana Petrovska-Delacrétaz, Jérôme Boudy, Ahmed Ben Hamida, Claude Bauzou, Iacob Crucianu, Ioannis Markopoulos, Emmanouil Spanakis, Alexandru Nicolin, Christian Narr, Marcel Kockmann, Javier Perez
2020 B conf
RCIS
Alexandros Bampoulidis, Alessandro Bruni, Ioannis Markopoulos, Mihai Lupu
2019 conf
WI (Companion)
Alexandros Bampoulidis, Ioannis Markopoulos, Mihai Lupu
2016 B conf
QoMEX
Maria Plakia, Michalis Katsarakis, Paulos Charonyktakis, Maria Papadopouli, Ioannis Markopoulos
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