Packages
ex_esdb
0.7.0
0.11.0
0.10.0
0.9.0
0.8.0
0.7.8
0.7.7
0.7.6
0.7.5
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.1
0.6.0
0.5.1
0.5.0
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.3
0.3.2
0.3.1
0.3.0
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
0.0.20
0.0.19
0.0.18
0.0.17
0.0.16
0.0.15
0.0.14-alpha
0.0.13-alpha
0.0.12-alpha
0.0.11-alpha
0.0.10-alpha
0.0.9-alpha
0.0.8-alpha
0.0.6-alpha
0.0.5-alpha
0.0.4-alpha
0.0.3-alpha
0.0.2-alfa
0.0.1-alfa
ExESDB is a reincarnation of rabbitmq/khepri, specialized for use as a BEAM-native event store.
Current section
Files
Jump to
Current section
Files
lib/themes.ex
defmodule ExESDB.Themes do
@moduledoc false
alias BCUtils.ColorFuncs, as: CF
alias ExESDB.Options, as: Options
# Helper function to get OTP app context for messages
defp app_prefix do
case Options.get_context() do
:ex_esdb -> ""
app_name -> "[#{app_name}] "
end
end
def app(pid, msg),
do: "[#{CF.black_on_blue()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[ExESDB Server] #{msg}"
def system(pid, msg),
do:
"[#{CF.black_on_magenta()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[ExESDB Main System] #{msg}"
def core_system(pid, msg),
do: "[#{CF.black_on_magenta()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[CoreSystem] #{msg}"
def notification_system(pid, msg),
do:
"[#{CF.black_on_cyan()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[NotificationSystem] #{msg}"
def store(pid, msg),
do: "[#{CF.black_on_green()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[Store] #{msg}"
def cluster(pid, msg),
do: "[#{CF.yellow_on_blue()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[Cluster] #{msg}"
def store_cluster(pid, msg),
do:
"[#{CF.yellow_on_black()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[StoreCluster] #{msg}"
def store_coordinator(pid, msg),
do:
"[#{CF.white_on_blue()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[StoreCoordinator] #{msg}"
def store_registry(pid, msg),
do: "[#{CF.white_on_blue()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[StoreRegistry] #{msg}"
def cluster_system(pid, msg),
do:
"[#{CF.bright_white_on_blue()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[ClusterSystem] #{msg}"
def node_monitor(pid, msg),
do:
"[#{CF.yellow_on_magenta()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[NodeMonitor] #{msg}"
def projector(pid, msg),
do: "[#{CF.black_on_white()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[Projector] #{msg}"
def monitor(pid, msg),
do: "[#{CF.yellow_on_magenta()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[Monitor] #{msg}"
def persistence_system(pid, msg),
do:
"[#{CF.blue_on_yellow()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()} [PersistenceSystem] #{msg}"
def persistence_worker(pid, msg),
do:
"[#{CF.blue_on_yellow()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()} [PersistenceWorker] #{msg}"
############################### EMITTER SYSTEM ###############################
def emitter_system(pid, msg),
do:
"[#{CF.bright_white_on_red()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()} [#{CF.yellow_on_black()}EMITTER SYSTEM#{CF.reset()}] #{CF.white_on_black()}#{msg}#{CF.reset()}"
def emitter_pool(pid, msg),
do:
"[#{CF.bright_white_on_red()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()} [#{CF.yellow_on_black()}EMITTER POOL#{CF.reset()}] #{CF.white_on_black()}#{msg}#{CF.reset()}"
def emitter_worker(pid, msg),
do:
"[#{CF.bright_white_on_red()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()} [#{CF.yellow_on_black()}EMITTER#{CF.reset()}] #{CF.white_on_black()}#{msg}#{CF.reset()}"
def persistent_emitter_worker(pid, msg),
do:
"[#{CF.bright_white_on_red()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()} [#{CF.yellow_on_black()}PERSISTENT EMITTER#{CF.reset()}] #{CF.white_on_black()}#{msg}#{CF.reset()}"
def pubsub(pid, msg),
do: "[#{CF.black_on_cyan()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[PubSub] #{msg}"
############ LEADER SYSTEM ##############
def leader_system(pid, msg),
do:
"[#{CF.black_on_magenta()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[LeaderSystem] #{msg}"
def leader_worker(pid, msg),
do:
"[#{CF.black_on_magenta()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[LeaderWorker] #{msg}"
def leader_tracker(pid, msg),
do:
"[#{CF.black_on_magenta()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[LeaderTracker] #{msg}"
######## SUBSCRIPTIONS ############
def subscriptions(pid, msg),
do:
"[#{CF.black_on_white()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[Subscriptions] #{msg}"
def subscriptions_reader(pid, msg),
do:
"[#{CF.black_on_white()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[SubscriptionsReader] #{msg}"
def subscriptions_writer(pid, msg),
do:
"[#{CF.black_on_white()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[SubscriptionsWriter] #{msg}"
########## STREAMS ###############
def streams(pid, msg),
do:
"[#{CF.bright_yellow_on_blue()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[Streams] #{msg}"
############## STREAMS_READER ##############
def streams_reader(pid, msg),
do:
"[#{CF.bright_yellow_on_blue()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[StreamsReader] #{msg}"
def streams_reader_pool(pid, msg),
do:
"[#{CF.bright_yellow_on_blue()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[StreamsReaderPool] #{msg}"
def streams_reader_worker(pid, msg),
do:
"[#{CF.bright_yellow_on_blue()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[StreamsReaderWorker] #{msg}"
############## STREAMS_WRITER ##############
def streams_writer(pid, msg),
do:
"[#{CF.bright_yellow_on_black()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[StreamsWriter] #{msg}"
def streams_writer_pool(pid, msg),
do:
"[#{CF.bright_yellow_on_black()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[StreamsWriterPool] #{msg}"
def streams_writer_system(pid, msg),
do:
"[#{CF.bright_yellow_on_black()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[StreamsWriterSystem] #{msg}"
def streams_writer_worker(pid, msg),
do:
"[#{CF.bright_yellow_on_black()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[StreamsWriterWorker] #{msg}"
########## GATEWAY ###############
def gateway_worker(pid, msg),
do:
"[#{CF.bright_cyan_on_black()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[GatewayWorker] #{msg}"
def gateway_supervisor(pid, msg),
do:
"[#{CF.bright_cyan_on_black()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[GatewaySupervisor] #{msg}"
def gateway_api(pid, msg),
do:
"[#{CF.bright_cyan_on_black()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[GatewayApi] #{msg}"
################ SNAPSHOTS ################
def snapshots_system(pid, msg),
do:
"[#{CF.blue_on_yellow()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[SnapshotsSystem] #{msg}"
def snapshots_reader(pid, msg),
do:
"[#{CF.blue_on_yellow()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[SnapshotsReader] #{msg}"
def snapshots_reader_pool(pid, msg),
do:
"[#{CF.blue_on_yellow()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[SnapshotsReaderPool] #{msg}"
def snapshots_reader_worker(pid, msg),
do:
"[#{CF.blue_on_yellow()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[SnapshotsReaderWorker] #{msg}"
def snapshots_writer(pid, msg),
do:
"[#{CF.blue_on_yellow()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[SnapshotsWriter] #{msg}"
def snapshots_writer_pool(pid, msg),
do:
"[#{CF.blue_on_yellow()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[SnapshotsWriterPool] #{msg}"
def snapshots_writer_worker(pid, msg),
do:
"[#{CF.blue_on_yellow()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[SnapshotsWriterWorker] #{msg}"
################ HEALTH MONITORING ################
def subscription_health_tracker(pid, msg),
do:
"[#{CF.green_on_black()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()}[SubscriptionHealthTracker] #{msg}"
################ ENHANCED COLOR-CODED MESSAGES ################
# Success messages (service UP) - white on green/blue for PID
def emitter_system_success_msg(pid, msg),
do:
"[#{CF.white_on_green()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()} [#{CF.yellow_on_black()}EMITTER SYSTEM#{CF.reset()}] #{CF.white_on_black()}#{msg}#{CF.reset()}"
def emitter_pool_success_msg(pid, msg),
do:
"[#{CF.white_on_green()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()} [#{CF.yellow_on_black()}EMITTER POOL#{CF.reset()}] #{CF.white_on_black()}#{msg}#{CF.reset()}"
def emitter_worker_success_msg(pid, msg),
do:
"[#{CF.white_on_blue()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()} [#{CF.yellow_on_black()}EMITTER#{CF.reset()}] #{CF.white_on_black()}#{msg}#{CF.reset()}"
# Failure messages - white on red for PID
def emitter_system_failure_msg(pid, msg),
do:
"[#{CF.white_on_red()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()} [#{CF.yellow_on_black()}EMITTER SYSTEM#{CF.reset()}] #{CF.white_on_black()}#{msg}#{CF.reset()}"
def emitter_pool_failure_msg(pid, msg),
do:
"[#{CF.white_on_red()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()} [#{CF.yellow_on_black()}EMITTER POOL#{CF.reset()}] #{CF.white_on_black()}#{msg}#{CF.reset()}"
def emitter_worker_failure_msg(pid, msg),
do:
"[#{CF.white_on_red()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()} [#{CF.yellow_on_black()}EMITTER#{CF.reset()}] #{CF.white_on_black()}#{msg}#{CF.reset()}"
# Action messages (dynamic worker creation) - white on amber/yellow for PID
def emitter_system_action_msg(pid, msg),
do:
"[#{CF.white_on_amber()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()} [#{CF.yellow_on_black()}EMITTER SYSTEM#{CF.reset()}] #{CF.white_on_black()}#{msg}#{CF.reset()}"
def emitter_pool_action_msg(pid, msg),
do:
"[#{CF.white_on_amber()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()} [#{CF.yellow_on_black()}EMITTER POOL#{CF.reset()}] #{CF.white_on_black()}#{msg}#{CF.reset()}"
def emitter_worker_action_msg(pid, msg),
do:
"[#{CF.white_on_amber()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()} [#{CF.yellow_on_black()}EMITTER#{CF.reset()}] #{CF.white_on_black()}#{msg}#{CF.reset()}"
# Health impact messages - white on cyan for PID
def emitter_worker_health_msg(pid, msg),
do:
"[#{CF.white_on_cyan()}#{inspect(pid)}#{CF.reset()}]#{app_prefix()} [#{CF.yellow_on_black()}EMITTER#{CF.reset()}] #{CF.white_on_black()}#{msg}#{CF.reset()}"
end