Raja Noor Ainon

22 papers A 2B 1C 2Journal 7Unranked 10
YearRankTypeTitle / Venue / Authors
2014 J jnl
IEICE Trans. Inf. Syst.
Mumtaz B. Mustafa, Zuraidah Mohd Don, Raja Noor Ainon, Roziati Zainuddin, Gerry Knowles
2012 J jnl
J. Medical Syst.
Raja Noor Ainon, Awang M. Bulgiba, Adel Lahsasna
2012 J jnl
Int. Arab J. Inf. Technol.
Mohammad Abd-Alrahman Mahmoud Abushariah, Raja Noor Ainon, Roziati Zainuddin, Moustafa Elshafei, Othman Omran Khalifa
2012 J jnl
J. Medical Syst.
Adel Lahsasna, Raja Noor Ainon, Roziati Zainuddin, Awang M. Bulgiba
2012 J jnl
J. Frankl. Inst.
Mohammad Abd-Alrahman Mahmoud Abushariah, Raja Noor Ainon, Roziati Zainuddin, Assal A. M. Alqudah, Moustafa Elshafei, Othman Omran Khalifa
2012 J jnl
Lang. Resour. Evaluation
Mohammad A. M. Abushariah, Raja Noor Ainon, Roziati Zainuddin, Moustafa Elshafei, Othman Omran Khalifa
2011 A conf
INTERSPEECH
Mumtaz B. Mustafa, Raja Noor Ainon, Roziati Zainuddin, Zuraidah M. Don, Gerry Knowles
2011 conf
KTW
Adel Lahsasna, Raja Noor Ainon, Roziati Zainuddin, Awang M. Bulgiba
2010 J jnl
Int. Arab J. Inf. Technol.
Adel Lahsasna, Raja Noor Ainon, Ying Wah Teh
2010 conf
SSW
Mumtaz B. Mustafa, Raja Noor Ainon, Roziati Zainuddin
2010 conf
IWSDS
Mohammad A. M. Abushariah, Raja Noor Ainon, Roziati Zainuddin, Bassam Ali Al-Qatab, Assal A. M. Alqudah
2010 conf
ISSPA
Mohammad Abd-Alrahman Mahmoud Abushariah, Raja Noor Ainon, Roziati Zainuddin, Moustafa Elshafei, Othman Omran Khalifa
2009 conf
Asia International Conference on Modelling and Simulation
Raja Noor Ainon, Adel Lahsasna, Ying Wah Teh
2009 conf
Asia International Conference on Modelling and Simulation
Mohammad Reza Zare, Raja Noor Ainon, Chaw-Seng Woo
2009 conf
Asia International Conference on Modelling and Simulation
Reem Sabah, Raja Noor Ainon
2008 A conf
INTERSPEECH
Mumtaz Begum, Raja Noor Ainon, Roziati Zainuddin, Zuraidah M. Don, Gerry Knowles
2007 C conf
iiWAS
Mumtaz Begum, Raja Noor Ainon, Zuraidah M. Don, Gerry Knowles
2007 conf
ISSPA
Kamran Soltani, Raja Noor Ainon
2005 C conf
iiWAS
Syaheerah L. Lutfi, Raja Noor Ainon, Salimah Mokhtar, Zuraidah M. Don
2005 conf
CITA
Syaheerah L. Lutfi, Raja Noor Ainon, Salimah Mokhtar, Zuraidah M. Don
2003 conf
ICECS
Omar el Mahdi, Raja Noor Ainon, Roziati Zainuddin
1986 B conf
COLING
Raja Noor Ainon
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