Vijay Gurbaxani

45 papers C 11Journal 29Unranked 4
YearRankTypeTitle / Venue / Authors
2025 J jnl
CoRR
Sardar Bonabi, Sarah Bana, Vijay Gurbaxani, Tingting Nian
2025 C conf
ICIS
Cristina M. De Haro, Behnaz Bojd, John Billimek, Vijay Gurbaxani
2021 J jnl
MIS Q.
Tingting Nian, Yuyuan (Anthony) Zhu, Vijay Gurbaxani
2020 J jnl
MIS Q.
Shivendu Shivendu, David Zeng, Vijay Gurbaxani
2019 J jnl
MIS Q. Executive
Vijay Gurbaxani, Debora Dunkle
2017 J jnl
MIS Q.
Young Bong Chang, Vijay Gurbaxani, Kiron Ravindran
2015 J jnl
Inf. Syst. Res.
Kiron Ravindran, Anjana Susarla, Deepa Mani, Vijay Gurbaxani
2013 J jnl
Inf. Syst. Res.
Young Bong Chang, Vijay Gurbaxani
2012 J jnl
Inf. Syst. Res.
David Fitoussi, Vijay Gurbaxani
2012 J jnl
MIS Q.
Young Bong Chang, Vijay Gurbaxani
2012 J jnl
Inf. Syst. Res.
Young Bong Chang, Vijay Gurbaxani
2009 conf
AMCIS
Vijay Gurbaxani
2009 conf
AMCIS
Kiron Ravindran, Anjana Susarla, Vijay Gurbaxani
2009 C conf
ICIS
Kiron Ravindran, Anjana Susarla, Vijay Gurbaxani
2009 conf
PACIS
Kiron Ravindran, Vijay Gurbaxani, Anjana Susarla
2007 ch.
Managing in the Information Economy
Vijay Gurbaxani
2007 J jnl
Manag. Sci.
Sanjeev Dewan, Charles Shi, Vijay Gurbaxani
2007 J jnl
Decis. Support Syst.
Nigel P. Melville, Vijay Gurbaxani, Kenneth L. Kraemer
2006 J jnl
MIS Q.
Kevin Zhu, Kenneth L. Kraemer, Vijay Gurbaxani, Sean Xin Xu
2004 C conf
ICIS
Young Bong Chang, Vijay Gurbaxani
2004 J jnl
MIS Q.
Nigel P. Melville, Kenneth L. Kraemer, Vijay Gurbaxani
2003 J jnl
ACM Comput. Surv.
Jason L. Dedrick, Vijay Gurbaxani, Kenneth L. Kraemer
2000 J jnl
J. Manag. Inf. Syst.
Paul P. Tallon, Kenneth L. Kraemer, Vijay Gurbaxani
2000 J jnl
Inf. Syst. Res.
Vijay Gurbaxani, Nigel P. Melville, Kenneth L. Kraemer
1998 C conf
ICIS
Vijay Gurbaxani, Nigel P. Melville, Kenneth L. Kraemer
1997 conf
ECIS
Paul P. Tallon, Kenneth L. Kraemer, Vijay Gurbaxani, John G. Mooney
1997 J jnl
Computer
Vijay Gurbaxani, Janet Wilson
1997 C conf
ICIS
Thomas Kern, Vijay Gurbaxani, Mary C. Lacity, John R. Harris
1996 J jnl
Data Base
John G. Mooney, Vijay Gurbaxani, Kenneth L. Kraemer
1996 C conf
ICIS
Vijay Gurbaxani, Mary C. Lacity, Leslie P. Willcocks
1996 J jnl
Commun. ACM
Vijay Gurbaxani
1995 C conf
ICIS
John G. Mooney, Vijay Gurbaxani, Kenneth L. Kraemer
1994 C conf
ICIS
Mo Adam Mahmood, Erik Brynjolfsson, Vijay Gurbaxani, James D. McKeen, Stephen S. Roach
1994 J jnl
Inf. Syst. Res.
John Leslie King, Vijay Gurbaxani, Kenneth L. Kraemer, F. Warren McFarlan, K. S. Raman, Chee-Sing Yap
1994 J jnl
Inf. Syst. Res.
Vijay Gurbaxani, Haim Mendelson
1992 J jnl
Decis. Support Syst.
Vijay Gurbaxani, Haim Mendelson
1992 C conf
ICIS
Rob Kling, Kenneth L. Kraemer, Jonathan P. Allen, Yannis Bakos, Vijay Gurbaxani, John Leslie King
1992 J jnl
Decis. Support Syst.
Vijay Gurbaxani
1991 J jnl
Commun. ACM
Vijay Gurbaxani, Seungjin Whang
1990 C conf
ICIS
Vijay Gurbaxani, Chris F. Kemerer
1990 J jnl
Inf. Syst. Res.
Vijay Gurbaxani, Haim Mendelson
1990 J jnl
Commun. ACM
Vijay Gurbaxani
1990 J jnl
Inf. Soc.
Vijay Gurbaxani, Kenneth L. Kraemer, John Leslie King, Sheryl Jarman, Jason L. Dedrick, K. S. Raman, Chee-Sing Yap
1990 C conf
ICIS
Vijay Gurbaxani, John Leslie King, Kenneth L. Kraemer, F. Warren McFarlan, K. S. Raman, Chee-Sing Yap
1987 J jnl
IEEE Trans. Software Eng.
Vijay Gurbaxani, Haim Mendelson
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