lib/posthog/logging.rb
# frozen_string_literal: true require 'logger' module PostHog # Wraps an existing logger and adds a prefix to all messages class PrefixedLogger def initialize(logger, prefix) @logger = logger @prefix = prefix end def debug(msg) @logger.debug("#{@prefix} #{msg}") end def info(msg) @logger.info("#{@prefix} #{msg}") end def warn(msg) @logger.warn("#{@prefix} #{msg}") end def error(msg) @logger.error("#{@prefix} #{msg}") end def level=(severity) @logger.level = severity end def level @logger.level end end module Logging class << self def logger return @logger if @logger base_logger = if defined?(Rails) Rails.logger else logger = Logger.new $stdout logger.progname = 'PostHog' logger.level = Logger::WARN logger end @logger = PrefixedLogger.new(base_logger, '[posthog-ruby]') end attr_writer :logger end def self.included(base) class << base def logger Logging.logger end end end def logger Logging.logger end end end