Ouadoudi Zytoune

39 papers B 4C 6Misc 2Journal 17Unranked 10
YearRankTypeTitle / Venue / Authors
2025 C conf
PEMWN
Mourad Benmenssour, Ouadoudi Zytoune, Ismail Bennis
2025 conf
ICC
Alaeddine Sahtouti, Adil Boumaalif, Ouadoudi Zytoune, Hacène Fouchal
2024 J jnl
Wirel. Pers. Commun.
Abdelkarim Chinbou, Adil Boumaalif, Ouadoudi Zytoune
2023 J jnl
J. Sens. Actuator Networks
Adil Boumaalif, Ouadoudi Zytoune, Hassan El Fadil, Rachid Saadane
2022 J jnl
Ad Hoc Networks
Ouadoudi Zytoune, Hacène Fouchal, Sherali Zeadally
2022 J jnl
IEEE Trans. Mob. Comput.
Adil Boumaalif, Ouadoudi Zytoune
2020 J jnl
Wirel. Pers. Commun.
Mohammed Assaouy, Ouadoudi Zytoune, Mohamed Ouadou
2020 J jnl
Int. J. Commun. Networks Inf. Secur.
Mohammed Assaouy, Ouadoudi Zytoune, Mohamed Ouadou
2020 J jnl
Int. J. Sens. Networks
Ahmed Mejdoubi, Hacène Fouchal, Ouadoudi Zytoune, Mohamed Ouadou
2019 conf
MSPN
Mourad Ouadou, Hajar Sahbani, Ouadoudi Zytoune, Mohamed Ouadou
2019 B conf
IWCMC
Ahmed Mejdoubi, Hacène Fouchal, Ouadoudi Zytoune, Mohamed Ouadou
2019 conf
MLN
Ahmed Mejdoubi, Ouadoudi Zytoune, Hacène Fouchal, Mohamed Ouadou
2019 J jnl
Int. J. Adv. Intell. Paradigms
Hachim Fall, Ouadoudi Zytoune, Mohamed Yahyai
2017 conf
ICC
Ouadoudi Zytoune, Hacène Fouchal, Driss Aboutajdine
2017 B conf
SMARTCOMP
Naji Najem, Driss Benhaddou, Mohamed Riduan Abid, Hassan Darhmaoui, Nissrine Krami, Ouadoudi Zytoune
2017 C conf
I4CS
Mohammed Assaouy, Ouadoudi Zytoune, Driss Aboutajdine
2017 J jnl
J. Sens. Actuator Networks
Mourad Ouadou, Ouadoudi Zytoune, Yassin El Hillali, Atika Menhaj-Rivenq, Driss Aboutajdine
2017 Misc conf
ATSIP
Imad Iala, Mourad Ouadou, Driss Aboutajdine, Ouadoudi Zytoune
2017 Misc conf
ATSIP
Mohammed Assaouy, Ouadoudi Zytoune, Driss Aboutajdine
2016 J jnl
Wirel. Commun. Mob. Comput.
Ismail Bennis, Hacène Fouchal, Ouadoudi Zytoune, Driss Aboutajdine
2016 J jnl
Wirel. Networks
Ouadoudi Zytoune, Driss Aboutajdine
2016 conf
FNC/MobiSPC
Mourad Ouadou, Ouadoudi Zytoune, Driss Aboutajdine, Yassin El Hillali, Atika Menhaj-Rivenq
2016 conf
UNet
Mina Ouyous, Ouadoudi Zytoune, Driss Aboutajdine
2015 B conf
GLOBECOM
Ismail Bennis, Hacène Fouchal, Kandaraj Piamrat, Ouadoudi Zytoune, Driss Aboutajdine
2015 C conf
FedCSIS
Ismail Bennis, Hacène Fouchal, Ouadoudi Zytoune, Driss Aboutajdine
2015 conf
ADHOCNETS
Mourad Ouadou, Ouadoudi Zytoune, Yassin El Hillali, Atika Menhaj-Rivenq, Driss Aboutajdine
2014 C conf
ISCC
Hacène Fouchal, Ouadoudi Zytoune, Driss Aboutajdine
2014 conf
ICC
Ismail Bennis, Hacène Fouchal, Ouadoudi Zytoune, Driss Aboutajdine
2014 C conf
FedCSIS
Ismail Bennis, Hacène Fouchal, Ouadoudi Zytoune, Driss Aboutajdine
2014 J jnl
Wirel. Pers. Commun.
Imane Dbibih, Ouadoudi Zytoune, Driss Aboutajdine
2014 J jnl
Wirel. Pers. Commun.
Imane Dbibih, Ouadoudi Zytoune, Driss Aboutajdine
2013 conf
NETYS
Ismail Bennis, Ouadoudi Zytoune, Driss Aboutajdine
2013 B conf
IWCMC
Ismail Bennis, Ouadoudi Zytoune, Driss Aboutajdine, Hacène Fouchal
2012 conf
ICMCS
Ahmed Bisengar, Ouadoudi Zytoune, Mohammed Rziza, Mohamed Ouadou
2011 J jnl
Int. J. Ad Hoc Ubiquitous Comput.
Ouadoudi Zytoune, Mohamed El Aroussi, Driss Aboutajdine
2010 J jnl
Wirel. Sens. Netw.
Ouadoudi Zytoune, Youssef Fakhri, Driss Aboutajdine
2010 J jnl
Wirel. Pers. Commun.
Ouadoudi Zytoune, Mohamed El Aroussi, Driss Aboutajdine
2010 J jnl
Int. J. Ad Hoc Ubiquitous Comput.
Ouadoudi Zytoune, Youssef Fakhri, Driss Aboutajdine
2009 C conf
AICCSA
Ouadoudi Zytoune, Youssef Fakhri, Driss Aboutajdine
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