Kalika Suksomboon

22 papers B 9Journal 3Unranked 10
YearRankTypeTitle / Venue / Authors
2025 conf
ASSE
Prime Wongsaard, Phithak Thaenkaew, Kalika Suksomboon
2022 conf
AINTEC
Nattaset Tanabodee, Kalika Suksomboon, Chavee Issariyapat, Sophon Mongkolluksamee, Aimaschana Niruntasukrat, Natapon Tansangworn, Sukumal Kitisin
2021 conf
GLOBECOM (Workshops)
Tawan Hohum, Kalika Suksomboon, Aimaschana Niruntasukrat, Sophon Mongkolluksamee, Natapon Tansangworn
2019 conf
COMPSAC (1)
Kalika Suksomboon, Zhishu Shen, Kazuaki Ueda, Atsushi Tagami
2018 J jnl
IEEE J. Sel. Areas Commun.
Kalika Suksomboon, Nobutaka Matsumoto, Shuichi Okamoto, Michiaki Hayashi, Yusheng Ji
2018 conf
ICN
Kalika Suksomboon, Kazuaki Ueda, Atsushi Tagami
2018 B conf
LCN
Kalika Suksomboon, Atsushi Tagami, Anirban Basu, Jun Kurihara
2017 B conf
NetSoft
Kalika Suksomboon, Nobutaka Matsumoto, Shuichi Okamoto, Michiaki Hayashi, Yusheng Ji
2017 conf
ICN
Kalika Suksomboon, Atsushi Tagami, Anirban Basu, Jun Kurihara
2017 J jnl
Int. J. Netw. Manag.
Kalika Suksomboon, Nobutaka Matsumoto, Masaki Fukushima, Shuichi Okamoto, Michiaki Hayashi
2016 B conf
NetSoft
Kalika Suksomboon, Masaki Fukushima, Shuichi Okamoto, Michiaki Hayashi
2015 B conf
NetSoft
Kalika Suksomboon, Masaki Fukushima, Michiaki Hayashi, Rathachai Chawuthai, Hideaki Takeda
2015 conf
ICC
Kalika Suksomboon, Masaki Fukushima, Michiaki Hayashi
2014 B conf
GLOBECOM
Kalika Suksomboon, Masaki Fukushima, Michiaki Hayashi, Yusheng Ji
2014 B conf
LCN
Saran Tarnoi, Kalika Suksomboon, Wuttipong Kumwilaisak, Yusheng Ji
2013 B conf
LCN
Saran Tarnoi, Kalika Suksomboon, Wuttipong Kumwilaisak, Yusheng Ji
2013 B conf
LCN
Kalika Suksomboon, Saran Tarnoi, Yusheng Ji, Michihiro Koibuchi, Kensuke Fukuda, Shunji Abe, Motonori Nakamura, Michihiro Aoki, Shigeo Urushidani, Shigeki Yamada
2012 conf
AINTEC
Kalika Suksomboon, Yusheng Ji, Michihiro Koibuchi, Kensuke Fukuda, Shunji Abe, Motonori Nakamura, Michihiro Aoki, Shigeo Urushidani, Shigeki Yamada
2011 J jnl
Comput. J.
Kalika Suksomboon, Panita Pongpaibool, Yusheng Ji, Chaodit Aswakul
2008 B conf
WCNC
Kalika Suksomboon, Panita Pongpaibool, Chaodit Aswakul
2008 conf
ICT
Piyanan Satayapiwat, Kalika Suksomboon, Chaodit Aswakul
2008 conf
SimuTools
Kalika Suksomboon, Piyanan Satayapiwat, Chaodit Aswakul
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