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)
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
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.