Naoki Yamada

24 papers A* 1A 1B 2Journal 7Unranked 13
YearRankTypeTitle / Venue / Authors
2024 conf
ICCE-Taiwan
Yasuhiro Okabe, Takefumi Hiraguri, Keita Endo, Hiroyuki Shimizu, Tomotaka Kimura, Naoki Yamada
2023 conf
ICCE-Taiwan
Naoki Yamada, Takefumi Hiraguri, Hiroyuki Shimizu, Tomotaka Kimura, Tomohito Shimada, Akane Shibasaki, Yoshihiro Takemura
2023 J jnl
Fuzzy Sets Syst.
Jun Kawabe, Naoki Yamada
2020 conf
SII
Naoki Yamada, Shunsuke Shigaki, Masahiro Shimizu, Hirono Ohashi, Takuya Umedachi, Toshihiko Ogura, Koh Hosoda
2019 conf
Living Machines
Naoki Yamada, Masahiro Shimizu, Takuya Umedachi, Toshihiro Ogura, Koh Hosoda
2018 conf
JIST (Workshops & Posters)
Naoki Yamada, Naoki Fukuta
2018 J jnl
IEEE Trans. Haptics
Yusuke Kishishita, Kazuhiro Takemura, Naoki Yamada, Toshihiro Hara, Atsuhide Kishi, Kazuo Nishikawa, Takahide Nouzawa, Toshio Tsuji, Yuichi Kurita
2017 conf
ICA
Naoki Fukuta, Naoki Yamada
2017 J jnl
IEICE Trans. Inf. Syst.
Naoki Yamada, Yuji Yamagata, Naoki Fukuta
2016 J jnl
SIAM J. Math. Anal.
Hiroyoshi Mitake, Antonio Siconolfi, Hung V. Tran, Naoki Yamada
2016 conf
ICA
Naoki Yamada, Yuji Yamagata, Naoki Fukuta
2016 conf
IIAI-AAI
Hettiarachchige Dona Nidhana Harshika, Naoki Yamada, Masahiro Nishi, Kihaya Sugiura, Naoki Fukuta
2016 conf
WI Workshops
Naoki Yamada, Naoki Fukuta
2016 conf
WI Workshops
Takuya Adachi, Naoki Yamada, Naoki Fukuta
2015 J jnl
IEEE Trans. Haptics
Yoshiyuki Tanaka, Kazuo Nishikawa, Naoki Yamada, Toshio Tsuji
2014 J jnl
IEEE Trans. Intell. Transp. Syst.
Yoshiyuki Tanaka, Naoki Yamada, Toshio Tsuji, Takamasa Suetomi
2013 B conf
SMC
Kazuhiro Takemura, Naoki Yamada, Atsuhide Kishi, Kazuo Nishikawa, Takahide Nouzawa, Chang Li, Yuichi Kurita, Toshio Tsuji
2013 conf
MIWAI
Naoki Yamada, Chiaki Sakama
2013 conf
SII
Jumpei Sato, Kazuhiro Takemura, Naoki Yamada, Atsuhide Kishi, Kazuo Nishikawa, Takahide Nouzawa, Toshio Tsuji, Yuichi Kurita
2012 conf
ISSCC
Akifumi Kawahara, Ryotaro Azuma, Yuuichirou Ikeda, Ken Kawai, Yoshikazu Katoh, Kouhei Tanabe, Toshihiro Nakamura, Yoshihiko Sumimoto, Naoki Yamada, Nobuyuki Nakai, Shoji Sakamoto, Yukio Hayakawa, Kiyotaka Tsuji, Shinichi Yoneda, Atsushi Himeno, Ken-ichi Origasa, Kazuhiko Shimakawa, Takeshi Takagi, Takumi Mikawa, Kunitoshi Aono
2010 B conf
SMC
Yoshiyuki Tanaka, Yusuke Kashiba, Naoki Yamada, Takamasa Suetomi, Kazuo Nishikawa, Takahide Nouzawa, Toshio Tsuji
2007 A* conf
ICRA
Yoshiyuki Tanaka, Teruyuki Onishi, Toshio Tsuji, Naoki Yamada, Yusaku Takeda, Ichiro Masamori
2006 J jnl
J. Robotics Mechatronics
Yoshiyuki Tanaka, Ryoma Kanda, Naoki Yamada, Hitoshi Fukuba, Ichiro Masamori, Toshio Tsuji
2005 A conf
IROS
Yoshiyuki Tanaka, Naoki Yamada, Kazuo Nishikawa, Ichiro Masamori, Toshio Tsuji
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