Ramesh Nagarajan

31 papers A* 4C 2Journal 21Unranked 4
YearRankTypeTitle / Venue / Authors
2011 J jnl
Bell Labs Tech. J.
Bilgehan Erman, Ali Inan, Ramesh Nagarajan, Hüseyin Uzunalioglu
2011 J jnl
Bell Labs Tech. J.
James A. Brunetti, Kanti Chakrabarti, Alina M. Ionescu-Graff, Ramesh Nagarajan, Dong Sun
2008 J jnl
Bell Labs Tech. J.
Ramesh Nagarajan, Sven Ooghe
2008 J jnl
Bell Labs Tech. J.
Sven Ooghe, Adrianus Van Ewijk, Ramesh Nagarajan
2005 conf
A-MOST
Xing Li, Ramesh Nagarajan
2005 J jnl
ACM SIGSOFT Softw. Eng. Notes
Xing Li, Ramesh Nagarajan
2003 J jnl
IEEE/ACM Trans. Netw.
Supratik Bhattacharyya, James F. Kurose, Donald F. Towsley, Ramesh Nagarajan
2003 J jnl
Bell Labs Tech. J.
Anekal B. Sripad, Stanislas Peijffers, Ramesh Nagarajan, Jaap W. Rodenburg
2002 conf
ICC
Olga Raskina, Ramesh Nagarajan
2001 J jnl
Bell Labs Tech. J.
Ramesh Nagarajan, M. Akber Qureshi, Bharathkumar Ramanna, Christopher J. Hunt, Rakesh Chandwani, Basudeb Das, Abha Shrotriya
2001 J jnl
Bell Labs Tech. J.
Gary P. Austin, Bharat T. Doshi, Christopher J. Hunt, Ramesh Nagarajan, M. Akber Qureshi
2001 J jnl
Bell Labs Tech. J.
Bharat T. Doshi, Ramesh Nagarajan, G. N. Srinivasa Prasanna, M. Akber Qureshi
2001 J jnl
Bell Labs Tech. J.
Yangguang Xu, Patrice N. Lamy, Eve L. Varma, Ramesh Nagarajan
2001 J jnl
Telecommun. Syst.
Ramesh Nagarajan, Olga Raskina
1999 J jnl
Bell Labs Tech. J.
Robert A. Goudreault, P. Harshavardhana, Ramesh Nagarajan, Carol Y. Sunada-Wong, Mark R. Wilson
1998 J jnl
Perform. Evaluation
Song Chong, Ramesh Nagarajan, Yung-Terng Wang
1998 A* conf
INFOCOM
Supratik Bhattacharyya, James F. Kurose, Donald F. Towsley, Ramesh Nagarajan
1998 J jnl
Comput. Networks ISDN Syst.
Song Chong, Ramesh Nagarajan, Yung-Terng Wang
1998 J jnl
Bell Labs Tech. J.
Cynthia A. Funka-Lea, Carol L. Janczewski, Wing Cheong Lau, Ramesh Nagarajan, Yung-Terng Wang, Zhi-Lei Xin
1997 C conf
ISCC
Bharat T. Doshi, Cynthia A. Funka-Lea, P. Harshavardhana, J. Gong, Ramesh Nagarajan, S. Ravikumar, S. Chen, Yung-Terng Wang
1997 J jnl
Wirel. Networks
Ramachandran Ramjee, Donald F. Towsley, Ramesh Nagarajan
1997 J jnl
Eur. Trans. Telecommun.
Enrique J. Hernandez-Valencia, Lotfi Benmohamed, Ramesh Nagarajan, Song Chong
1997 C conf
ISCC
Daniel R. Jeske, M. Akber Qureshi, Ramesh Nagarajan
1996 J jnl
Telecommun. Syst.
P. Harshavardhana, Pravin K. Johri, Ramesh Nagarajan
1996 A* conf
INFOCOM
Ramachandran Ramjee, Ramesh Nagarajan, Donald F. Towsley
1994 J jnl
J. High Speed Networks
Ramesh Nagarajan, Jim Kurose, Don Towsley
1993 conf
Kommunikation in Verteilten Systemen
Carsten Vogt, Ralf Guido Herrtwich, Ramesh Nagarajan
1993 conf
Modelling and Evaluation of ATM Networks
Ramesh Nagarajan, James F. Kurose, Donald F. Towsley
1992 A* conf
INFOCOM
Ramesh Nagarajan, James F. Kurose
1991 J jnl
IEEE J. Sel. Areas Commun.
Ramesh Nagarajan, James F. Kurose, Donald F. Towsley
1990 A* conf
INFOCOM
Ramesh Nagarajan, James F. Kurose, Donald F. Towsley
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