Ilya Kiselev

22 papers A 1C 6Journal 9Unranked 5
YearRankTypeTitle / Venue / Authors
2025 C conf
ISCAS
Shu Wang, Silvia Demuru, Céline Lafaye, Jaemin Kim, Brince Paul Kunnel, Cyril Besson, Ilya Kiselev, Vincent Gremeaux, Mathieu Saubade, Danick Briand, Shih-Chii Liu
2023 conf
BioCAS
Hasan Mohamed, Bogdan C. Raducanu, Ilya Kiselev, Zuowen Wang, Burcu Küçükoglu, Bodo Rueckauer, Marcel van Gerven, Carolina Mora Lopez, Shih-Chii Liu
2023 J jnl
IEEE Trans. Biomed. Circuits Syst.
Shu Wang, Meritxell Rovira, Silvia Demuru, Céline Lafaye, Jaemin Kim, Brince Paul Kunnel, Cyril Besson, César Fernández-Sánchez, Francisco Serra-Graells, Josep Maria Margarit-Taulé, Joan Aymerich, Javier Cuenca, Ilya Kiselev, Vincent Gremeaux, Mathieu Saubade, Cecilia Jiménez-Jorquera, Danick Briand, Shih-Chii Liu
2022 J jnl
CoRR
Kwantae Kim, Chang Gao, Rui Graça, Ilya Kiselev, Hoi-Jun Yoo, Tobi Delbruck, Shih-Chii Liu
2022 J jnl
IEEE J. Solid State Circuits
Kwantae Kim, Chang Gao, Rui Graça, Ilya Kiselev, Hoi-Jun Yoo, Tobi Delbruck, Shih-Chii Liu
2022 conf
ISSCC
Kwantae Kim, Chang Gao, Rui Graça, Ilya Kiselev, Hoi-Jun Yoo, Tobi Delbruck, Shih-Chii Liu
2022 J jnl
Nucleic Acids Res.
Fedor A. Kolpakov, Ilya R. Akberdin, Ilya Kiselev, Semyon Kolmykov, Yury V. Kondrakhin, Mikhail Kulyashov, Elena Kutumova, Sergey S. Pintus, Anna Ryabova, Ruslan N. Sharipov, Ivan S. Yevshin, Sergey Zhatchenko, Alexander E. Kel
2022 conf
BioCAS
Céline Lafaye, Meritxell Rovira, Silvia Demuru, Shu Wang, Jaemin Kim, Brince Paul Kunnel, Cyril Besson, César Fernández-Sánchez, Francisco Serra-Graells, Josep Maria Margarit-Taulé, Joan Aymerich, Javier Cuenca, Ilya Kiselev, Vincent Gremeaux, Mathieu Saubade, Cecilia Jiménez-Jorquera, Danick Briand, Shih-Chii Liu
2022 J jnl
IEEE Trans. Circuits Syst. I Regul. Pap.
Ilya Kiselev, Chang Gao, Shih-Chii Liu
2022 J jnl
CoRR
Ilya Kiselev, Chang Gao, Shih-Chii Liu
2021 C conf
ISCAS
Ilya Kiselev, Shih-Chii Liu
2021
Ilya Kiselev
2021 J jnl
IEEE J. Solid State Circuits
Minhao Yang, HongJie Liu, Weiwei Shan, Jun Zhang, Ilya Kiselev, Sang Joon Kim, Christian C. Enz, Mingoo Seok
2020 J jnl
IEEE ACM Trans. Audio Speech Lang. Process.
Enea Ceolini, Ilya Kiselev, Shih-Chii Liu
2019 conf
IEEE SENSORS
Enea Ceolini, Ilya Kiselev, Shih-Chii Liu
2019 C conf
ISCAS
Chang Gao, Stefan Braun, Ilya Kiselev, Jithendar Anumula, Tobi Delbruck, Shih-Chii Liu
2019 C conf
ISCAS
Chang Gao, Stefan Braun, Ilya Kiselev, Jithendar Anumula, Tobi Delbruck, Shih-Chii Liu
2018 A conf
INTERSPEECH
Enea Ceolini, Jithendar Anumula, Adrian E. G. Huber, Ilya Kiselev, Shih-Chii Liu
2017 conf
LCN Workshops
Ilya Kiselev, Enea Ceolini, Daniel D. E. Wong, Alain de Cheveigné, Shih-Chii Liu
2016 C conf
ISCAS
Ilya Kiselev, Daniel Neil, Shih-Chii Liu
2016 C conf
ISCAS
Ilya Kiselev, Daniel Neil, Shih-Chii Liu
2016 J jnl
IEEE Trans. Biomed. Eng.
Dagmar Waltemath, Jonathan R. Karr, Frank T. Bergmann, Vijayalakshmi Chelliah, Michael Hucka, Marcus Krantz, Wolfram Liebermeister, Pedro Mendes, Chris J. Myers, Pinar Pir, Begum Alaybeyoglu, Naveen K. Aranganathan, Kambiz Baghalian, Arne T. Bittig, Paulo E. Pinto Burke, Matteo Cantarelli, Yin Hoon Chew, Rafael S. Costa, Joseph Cursons, Tobias Czauderna, Arthur P. Goldberg, Harold F. Gómez, Jens Hahn, Tuure Hameri, Daniel F. Hernandez Gardiol, Denis Kazakiewicz, Ilya Kiselev, Vincent Knight-Schrijver, Christian Knüpfer, Matthias König, Daewon Lee, Audald Lloret-Villas, Nikita Mandrik, J. Kyle Medley, Bertrand Moreau, Hojjat Naderi-Meshkin, Sucheendra K. Palaniappan, Daniel Priego-Espinosa, Martin Scharm, Mahesh Sharma, Kieran Smallbone, Natalie J. Stanford, Je-Hoon Song, Tom Theile, Milenko Tokic, Namrata Tomar, Vasundra Touré, Jannis Uhlendorf, Thawfeek M. Varusai, Leandro H. Watanabe, Florian Wendland, Markus Wolfien, James T. Yurkovich, Yan Zhu, Argyris Zardilis, Anna Zhukova, Falk Schreiber
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