Skip to contents

Unified Logger for mLLMCelltype Package

Unified Logger for mLLMCelltype Package

Details

This logger provides centralized, multi-level logging with structured output, log rotation, and performance monitoring capabilities.

Public fields

log_dir

Directory for storing log files

log_level

Current logging level

session_id

Unique identifier for the current session

max_log_size

Maximum log file size in MB (default: 10MB)

max_log_files

Maximum number of log files to keep (default: 5)

enable_console

Whether to output to console (default: TRUE)

enable_json

Whether to use JSON format (default: TRUE)

performance_stats

Performance monitoring statistics

Methods


Method new()

Initialize the unified logger

Usage

UnifiedLogger$new(
  base_dir = "logs",
  level = "INFO",
  max_size = 10,
  max_files = 5,
  console_output = TRUE,
  json_format = TRUE
)

Arguments

base_dir

Base directory for logs (default: "logs")

level

Logging level: DEBUG, INFO, WARN, ERROR (default: "INFO")

max_size

Maximum log file size in MB (default: 10)

max_files

Maximum number of log files to keep (default: 5)

console_output

Whether to output to console (default: TRUE)

json_format

Whether to use JSON format (default: TRUE)


Method debug()

Log a debug message

Usage

UnifiedLogger$debug(message, context = NULL)

Arguments

message

Log message

context

Additional context (optional)


Method info()

Log an info message

Usage

UnifiedLogger$info(message, context = NULL)

Arguments

message

Log message

context

Additional context (optional)


Method warn()

Log a warning message

Usage

UnifiedLogger$warn(message, context = NULL)

Arguments

message

Log message

context

Additional context (optional)


Method error()

Log an error message

Usage

UnifiedLogger$error(message, context = NULL)

Arguments

message

Log message

context

Additional context (optional)


Method log_api_call()

Log API call performance

Usage

UnifiedLogger$log_api_call(
  provider,
  model,
  duration,
  success = TRUE,
  tokens = NULL
)

Arguments

provider

API provider name

model

Model name

duration

Duration in seconds

success

Whether the call was successful

tokens

Number of tokens used (optional)


Method log_api_request_response()

Log complete API request and response for debugging and audit

Usage

UnifiedLogger$log_api_request_response(
  provider,
  model,
  prompt_content,
  response_content,
  request_metadata = NULL,
  response_metadata = NULL
)

Arguments

provider

API provider name

model

Model name

prompt_content

The complete prompt sent to the API

response_content

The complete response received from the API

request_metadata

Additional request metadata (optional)

response_metadata

Additional response metadata (optional)


Method log_cache_operation()

Log cache operations

Usage

UnifiedLogger$log_cache_operation(operation, key, size = NULL)

Arguments

operation

Operation type: "hit", "miss", "store", "clear"

key

Cache key

size

Size of cached data (optional)


Method log_cluster_progress()

Log cluster annotation progress

Usage

UnifiedLogger$log_cluster_progress(cluster_id, stage, progress = NULL)

Arguments

cluster_id

Cluster identifier

stage

Current stage

progress

Progress information


Method log_discussion()

Log detailed cluster discussion with complete model conversations

Usage

UnifiedLogger$log_discussion(cluster_id, event_type, data = NULL)

Arguments

cluster_id

Cluster identifier

event_type

Type of event (start, prediction, consensus, end)

data

Event data


Method get_performance_summary()

Get performance summary

Usage

UnifiedLogger$get_performance_summary()

Returns

List of performance statistics


Method cleanup_logs()

Clean up old log files

Usage

UnifiedLogger$cleanup_logs(force = FALSE)

Arguments

force

Force cleanup even if within file limits


Method set_level()

Set logging level

Usage

UnifiedLogger$set_level(level)

Arguments

level

New logging level: DEBUG, INFO, WARN, ERROR


Method clone()

The objects of this class are cloneable with this method.

Usage

UnifiedLogger$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.