Adjustments to logger
This commit is contained in:
@ -12,7 +12,7 @@ file_copy_sync :: proc( path_src, path_dst: string, allocator := context.allocat
|
||||
{
|
||||
path_info, result := file_status( path_src, allocator )
|
||||
if result != os.ERROR_NONE {
|
||||
logf("Could not get file info: %v", result, LogLevel.Error )
|
||||
log_fmt("Could not get file info: %v", result, LogLevel.Error )
|
||||
return false
|
||||
}
|
||||
file_size = path_info.size
|
||||
@ -20,14 +20,14 @@ file_copy_sync :: proc( path_src, path_dst: string, allocator := context.allocat
|
||||
|
||||
src_content, result := os.read_entire_file( path_src, allocator )
|
||||
if ! result {
|
||||
logf( "Failed to read file to copy: %v", path_src, LogLevel.Error )
|
||||
log_fmt( "Failed to read file to copy: %v", path_src, LogLevel.Error )
|
||||
runtime.debug_trap()
|
||||
return false
|
||||
}
|
||||
|
||||
result = os.write_entire_file( path_dst, src_content, false )
|
||||
if ! result {
|
||||
logf( "Failed to copy file: %v", path_dst, LogLevel.Error )
|
||||
log_fmt( "Failed to copy file: %v", path_dst, LogLevel.Error )
|
||||
runtime.debug_trap()
|
||||
return false
|
||||
}
|
||||
|
@ -141,7 +141,7 @@ hmap_chained_get :: proc( using self : HMapChained($Type), key : u64) -> ^Type
|
||||
{
|
||||
if slot.occupied && slot.key == key {
|
||||
if self.dbg_name != "" && self.tracker.entries.header != nil {
|
||||
logf( "%v: Retrieved %v in lookup[%v] which shows key as %v", self.dbg_name, key, hash_index, slot.key )
|
||||
log_fmt( "%v: Retrieved %v in lookup[%v] which shows key as %v", self.dbg_name, key, hash_index, slot.key )
|
||||
}
|
||||
return & slot.value
|
||||
}
|
||||
@ -229,7 +229,7 @@ hmap_chained_set :: proc( self : HMapChained($Type), key : u64, value : Type ) -
|
||||
surface_slot.value = value
|
||||
surface_slot.occupied = true
|
||||
if dbg_name != "" && tracker.entries.header != nil {
|
||||
logf( "%v: Set %v in lookup[%v]", self.dbg_name, key, hash_index )
|
||||
log_fmt( "%v: Set %v in lookup[%v]", self.dbg_name, key, hash_index )
|
||||
}
|
||||
|
||||
return & surface_slot.value, .None
|
||||
@ -263,7 +263,7 @@ hmap_chained_set :: proc( self : HMapChained($Type), key : u64, value : Type ) -
|
||||
slot.next.value = value
|
||||
slot.next.occupied = true
|
||||
if dbg_name != "" && tracker.entries.header != nil {
|
||||
logf( "%v: Set %v in lookup[%v] nest_id: %v", self.dbg_name, key, hash_index, nest_id )
|
||||
log_fmt( "%v: Set %v in lookup[%v] nest_id: %v", self.dbg_name, key, hash_index, nest_id )
|
||||
}
|
||||
return & slot.next.value, .None
|
||||
}
|
||||
|
@ -8,14 +8,24 @@ import str "core:strings"
|
||||
import "core:time"
|
||||
import core_log "core:log"
|
||||
|
||||
Max_Logger_Message_Width :: 180
|
||||
Max_Logger_Message_Width :: 160
|
||||
|
||||
LogLevel :: core_log.Level
|
||||
|
||||
LoggerEntry :: struct {
|
||||
text : string,
|
||||
timestamp : string,
|
||||
level : string,
|
||||
location : string,
|
||||
}
|
||||
|
||||
Logger :: struct {
|
||||
file_path : string,
|
||||
file : os.Handle,
|
||||
id : string,
|
||||
|
||||
varena : VArena,
|
||||
entries : Array(LoggerEntry),
|
||||
}
|
||||
|
||||
to_odin_logger :: proc( logger : ^ Logger ) -> core_log.Logger {
|
||||
@ -37,6 +47,27 @@ logger_init :: proc( logger : ^ Logger, id : string, file_path : string, file :
|
||||
logger.file_path = file_path
|
||||
logger.id = id
|
||||
|
||||
LOGGER_VARENA_BASE_ADDRESS : uintptr = 2 * Terabyte
|
||||
@static vmem_init_counter : uintptr = 0
|
||||
|
||||
when true {
|
||||
alloc_error : AllocatorError
|
||||
// logger.varena, alloc_error = varena_init(
|
||||
// LOGGER_VARENA_BASE_ADDRESS + vmem_init_counter * 250 * Megabyte,
|
||||
// 1 * Megabyte,
|
||||
// 128 * Kilobyte,
|
||||
// growth_policy = nil,
|
||||
// allow_any_resize = true,
|
||||
// dbg_name = "logger varena",
|
||||
// enable_mem_tracking = false )
|
||||
// verify( alloc_error == .None, "Failed to allocate logger's virtual arena")
|
||||
vmem_init_counter += 1
|
||||
|
||||
// TODO(Ed): Figure out another solution here...
|
||||
// logger.entries, alloc_error = array_init(Array(LoggerEntry), 8192, runtime.heap_allocator())
|
||||
// verify( alloc_error == .None, "Failed to allocate logger's entries array")
|
||||
}
|
||||
|
||||
context.logger = { logger_interface, logger, core_log.Level.Debug, core_log.Default_File_Logger_Opts }
|
||||
log("Initialized Logger")
|
||||
when false {
|
||||
@ -60,8 +91,10 @@ logger_interface :: proc(
|
||||
|
||||
first_line_length := len(text) > Max_Logger_Message_Width ? Max_Logger_Message_Width : len(text)
|
||||
first_line := transmute(string) text[ 0 : first_line_length ]
|
||||
// str_fmt_builder( & builder, "%-s ", Max_Logger_Message_Width, first_line )
|
||||
str_fmt_builder( & builder, "%-180s ", first_line )
|
||||
|
||||
str_fmt_builder( & builder, "%s ", first_line )
|
||||
|
||||
// str_fmt_builder( & builder, "%-s ", first_line )
|
||||
|
||||
// Signature
|
||||
{
|
||||
@ -84,6 +117,7 @@ logger_interface :: proc(
|
||||
str_fmt_builder( & builder, "] ")
|
||||
}
|
||||
}
|
||||
|
||||
core_log.do_level_header( options, & builder, level )
|
||||
|
||||
if logger.id != "" {
|
||||
@ -125,7 +159,7 @@ log :: proc( msg : string, level := LogLevel.Info, loc := #caller_location ) {
|
||||
core_log.log( level, msg, location = loc )
|
||||
}
|
||||
|
||||
logf :: proc( fmt : string, args : ..any, level := LogLevel.Info, loc := #caller_location ) {
|
||||
log_fmt :: proc( fmt : string, args : ..any, level := LogLevel.Info, loc := #caller_location ) {
|
||||
temp_arena : Arena; arena_init(& temp_arena, Logger_Allocator_Buffer[:])
|
||||
context.allocator = arena_allocator(& temp_arena)
|
||||
context.temp_allocator = arena_allocator(& temp_arena)
|
||||
|
@ -25,7 +25,7 @@ memtracker_clear :: proc ( tracker : MemoryTracker ) {
|
||||
return
|
||||
}
|
||||
|
||||
logf("Clearing tracker: %v", tracker.name)
|
||||
log_fmt("Clearing tracker: %v", tracker.name)
|
||||
memtracker_dump_entries(tracker);
|
||||
array_clear(tracker.entries)
|
||||
}
|
||||
@ -75,12 +75,12 @@ memtracker_register :: proc( tracker : ^MemoryTracker, new_entry : MemoryTracker
|
||||
memtracker_dump_entries(tracker ^)
|
||||
}
|
||||
array_append_at( & tracker.entries, new_entry, idx )
|
||||
logf("Registered: %v -> %v | %v", new_entry.start, new_entry.end, tracker.name)
|
||||
log_fmt("Registered: %v -> %v | %v", new_entry.start, new_entry.end, tracker.name)
|
||||
return
|
||||
}
|
||||
|
||||
array_append( & tracker.entries, new_entry )
|
||||
logf("Registered: %v -> %v | %v", new_entry.start, new_entry.end, tracker.name )
|
||||
log_fmt("Registered: %v -> %v | %v", new_entry.start, new_entry.end, tracker.name )
|
||||
}
|
||||
|
||||
memtracker_register_auto_name :: proc( tracker : ^MemoryTracker, start, end : rawptr )
|
||||
@ -118,7 +118,7 @@ memtracker_unregister :: proc( tracker : MemoryTracker, to_remove : MemoryTracke
|
||||
entry := & entries[idx]
|
||||
if entry.start == to_remove.start {
|
||||
if (entry.end == to_remove.end || to_remove.end == nil) {
|
||||
logf("Unregistered: %v -> %v | %v", to_remove.start, to_remove.end, tracker.name );
|
||||
log_fmt("Unregistered: %v -> %v | %v", to_remove.start, to_remove.end, tracker.name );
|
||||
array_remove_at(tracker.entries, idx)
|
||||
return
|
||||
}
|
||||
@ -166,6 +166,6 @@ memtracker_dump_entries :: proc( tracker : MemoryTracker )
|
||||
log( "Dumping Memory Tracker:")
|
||||
for idx in 0 ..< tracker.entries.num {
|
||||
entry := & tracker.entries.data[idx]
|
||||
logf("%v -> %v", entry.start, entry.end)
|
||||
log_fmt("%v -> %v", entry.start, entry.end)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user