diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..936ab87 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +src/library diff --git a/src/anb_log.aproj b/src/anb_log.aproj index 979d54b..cec4349 100644 --- a/src/anb_log.aproj +++ b/src/anb_log.aproj @@ -23,6 +23,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -61,6 +118,362 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -206,6 +619,165 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/src/logger_server.anubis b/src/src/logger_server.anubis index 03c4a9f..52d9876 100644 --- a/src/src/logger_server.anubis +++ b/src/src/logger_server.anubis @@ -25,6 +25,55 @@ type UID_loggers: ) . + +type UID_loggers_No_Var: + uid_loggers_no_var( + String uid, + String base_dir, + List(Logger_no_Var) loggers + ) +. + + +define One + save_loggers + ( + Var(List(UID_loggers)) logs + )= + with anb_log_cache = find_and_replace(my_anubis_directory, "\\", "/") + "/anb_log/cache", + with to_cache = + map((UID_loggers uid_l) |-> + uid_loggers_no_var( + uid_l.uid, + uid_l.base_dir, + map((Logger l) |-> + to_Logger_no_Var(l) + , + *uid_l.loggers) + ) + , + *logs), + forget(save(to_cache, anb_log_cache)) +. + +define Var(List(UID_loggers)) + load_loggers = + with anb_log_cache = find_and_replace(my_anubis_directory, "\\", "/") + "/anb_log/cache", + if(RetrieveResult(List(UID_loggers_No_Var)))retrieve(anb_log_cache) is ok(lnvs) then + var(map((UID_loggers_No_Var lnv) |-> + uid_loggers( + lnv.uid, + lnv.base_dir, + var(map((Logger_no_Var l) |-> + to_Logger(l) + , + lnv.loggers))) + , + lnvs)) + else + var([]) +. + /** get_uid_loggers */ define Maybe(UID_loggers) @@ -115,7 +164,8 @@ define One failure then unique, success(new_log) then _uid_log.loggers <- [new_log . *_uid_log.loggers]; - logInfo(anb_logger, "register_logger: logger ["+log_name+"] created in ["+uid+"]") + logInfo(anb_logger, "register_logger: logger ["+log_name+"] created in ["+uid+"]"); + save_loggers(logs) } success(_) then logWarning(anb_logger, "register_logger: logger ["+log_name+"] already exists in ["+uid+"]") @@ -141,7 +191,8 @@ define One with base_dir = if abs_path then default_path else log_server_base_dir + default_path, with new_uid = uid_loggers(uid, base_dir, var([])), logs <- [ new_uid . *logs]; - logInfo(anb_logger, "register_uid UID logger ["+uid+"] success with base dir '"+base_dir+"'.") + logInfo(anb_logger, "register_uid UID logger ["+uid+"] success with base dir '"+base_dir+"'."); + save_loggers(logs) success(_) then logError(anb_logger, "register_uid UID logger ["+uid+"] already exists.") }} @@ -163,14 +214,17 @@ define Bool { failure then //println("process_log can't find LogMask ["+log_string+"]"); - logError(log, "process_log can't find LOG_MASK");false, - success(log_mask) then logTrace(log, logMask(log_mask), log_string, thread_id); true + logError(log, "process_log can't find LOG_MASK"); + false, + success(log_mask) then + logTrace(log, logMask(log_mask), log_string, thread_id); + true } - else doLog(log, log_string, level, thread_id); true - - } - } - }. + else + doLog(log, log_string, level, thread_id); + true + }}} +. define Bool process_log @@ -317,6 +371,6 @@ global define One //create own logger with anb_logger = createLogger("anb_log", 7, base_directory + "anb_log.log", logTrace, logTrace), logInfo(anb_logger, "start anb_log "+datef_ymd(product_time) + " " + dhour_format(product_time)); - - forget(start_logger_server(create_default_loggers(base_directory), anb_logger, server_port, base_directory)) + with loggers = load_loggers, + forget(start_logger_server(loggers, anb_logger, server_port, base_directory)) . -- libgit2 0.21.4