Cenk Sahin

28 papers B 4Misc 1Journal 16Unranked 6
YearRankTypeTitle / Venue / Authors
2024 J jnl
Neural Process. Lett.
Kübra Tümay Ates, Ibrahim Erdem Kalkan, Cenk Sahin
2023 J jnl
Neural Comput. Appl.
Ibrahim Erdem Kalkan, Cenk Sahin
2022 J jnl
Neural Comput. Appl.
Kafiye Salçuk, Cenk Sahin
2019 J jnl
IEEE J. Sel. Areas Commun.
Cenk Sahin, Lingjia Liu, Erik Perrins, Liangping Ma
2018 J jnl
IEEE Trans. Neural Networks Learn. Syst.
Somayeh Mosleh, Lingjia Liu, Cenk Sahin, Yahong Rosa Zheng, Yang Yi
2018 Misc conf
ACSSC
Patrick M. McCormick, Cenk Sahin, Shannon D. Blunt, Justin G. Metcalf
2018 conf
SPAWC
Aboulnasr Hassanien, Cenk Sahin, Justin G. Metcalf, Braham Himed
2017 J jnl
J. Intell. Manuf.
Cenk Sahin, Melek Demirtas, Rizvan Erol, Adil Baykasoglu, Vahit Kaplanoglu
2016 B conf
IJCNN
Susanna Mosleh, Cenk Sahin, Lingjia Liu, R. Y. Zheng, Yang Yi
2016 J jnl
Int. J. Data Anal. Tech. Strateg.
Adil Baykasoglu, Vahit Kaplanoglu, Cenk Sahin
2015 J jnl
IEEE Trans. Aerosp. Electron. Syst.
Justin G. Metcalf, Cenk Sahin, Shannon D. Blunt, Muralidhar Rangaswamy
2015
Cenk Sahin
2015 conf
GLOBECOM Workshops
Cenk Sahin, Lingjia Liu, Erik S. Perrins
2015 conf
MILCOM
Cenk Sahin, Erik S. Perrins
2014 J jnl
IEEE Trans. Commun.
Cenk Sahin, Lingjia Liu, Erik S. Perrins
2014 B conf
ISIT
Cenk Sahin, Lingjia Liu, Erik S. Perrins
2014 B conf
GLOBECOM
Cenk Sahin, Lingjia Liu, Erik S. Perrins
2013 B conf
GLOBECOM
Cenk Sahin, Lingjia Liu, Erik S. Perrins
2013 J jnl
Expert Syst. Appl.
Adil Baykasoglu, Vahit Kaplanoglu, Zeynep D. U. Durmusoglu, Cenk Sahin
2013 conf
ICC
Cenk Sahin, Lingjia Liu, Erik S. Perrins
2012 J jnl
Appl. Soft Comput.
Rizvan Erol, Cenk Sahin, Adil Baykasoglu, Vahit Kaplanoglu
2011 conf
MILCOM
Cenk Sahin, Erik S. Perrins
2010 J jnl
J. Medical Syst.
Kezban Aslan, Hacer Bozdemir, Cenk Sahin, Seyfettin Noyan Ogulata
2009 J jnl
J. Medical Syst.
Seyfettin Noyan Ogulata, Cenk Sahin, Rizvan Erol
2008 J jnl
Int. J. Pattern Recognit. Artif. Intell.
Cenk Sahin, Seyfettin Noyan Ogulata, Kezban Aslan, Hacer Bozdemir, Rizvan Erol
2008 J jnl
J. Medical Syst.
Rizvan Erol, Seyfettin Noyan Ogulata, Cenk Sahin, Z. Nazan Alparslan
2008 J jnl
J. Medical Syst.
Kezban Aslan, Hacer Bozdemir, Cenk Sahin, Seyfettin Noyan Ogulata, Rizvan Erol
2007 conf
BVAI
Cenk Sahin, Seyfettin Noyan Ogulata, Kezban Aslan, Hacer Bozdemir
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