Commit 9510293f86d189f0c96969f91c3cb48ab5ed3e37

Authored by David RENÉ
1 parent 81ab652c

Create stand alone logger server. Change all call to log according to this

CXM_message_constants.anubis
@@ -64,6 +64,8 @@ public define Word32 _CXM_FTP_DATA = 0x33771404. @@ -64,6 +64,8 @@ public define Word32 _CXM_FTP_DATA = 0x33771404.
64 public define Word32 _CXM_LOGGER_SERVICE_MSG_BASIS = 0x33771800. // 64 public define Word32 _CXM_LOGGER_SERVICE_MSG_BASIS = 0x33771800. //
65 public define Word32 _CXM_LOGGER_SERVICE_ID = 0x33771801. 65 public define Word32 _CXM_LOGGER_SERVICE_ID = 0x33771801.
66 public define Word32 _CXM_LOGGER_LOG = 0x33771802. 66 public define Word32 _CXM_LOGGER_LOG = 0x33771802.
  67 +public define Word32 _CXM_LOGGER_REGISTER_UID = 0x33771803.
  68 +public define Word32 _CXM_LOGGER_REGISTER_LOG = 0x33771804.
67 69
68 // ************** DOMAIN SERVICE ************** 70 // ************** DOMAIN SERVICE **************
69 71
database/alter_table.anubis
@@ -56,39 +56,39 @@ define One @@ -56,39 +56,39 @@ define One
56 ) = 56 ) =
57 if l is 57 if l is
58 { 58 {
59 - [] then print(" <<<\n"), 59 + [] then print(" <<<\n"),
60 [h . t] then print(h + ", "); print_list(t) 60 [h . t] then print(h + ", "); print_list(t)
61 }. 61 }.
62 62
63 define Maybe(One) 63 define Maybe(One)
64 my_sql_query 64 my_sql_query
65 ( 65 (
66 - Database db,  
67 - String sql,  
68 - Logger log 66 + Database db,
  67 + String sql,
  68 + (LogLevel, String) -> One log
69 ) = 69 ) =
70 if sql_query(db, sql) is 70 if sql_query(db, sql) is
71 { 71 {
72 - error(sql_error) then logError(log, "SQL ERROR: " + sql_error.text + "\n ...executing query [" + sql + "]"); failure,  
73 - ok(_,_,_) then success(unique) 72 + error(sql_error) then log(logError, "SQL ERROR: " + sql_error.text + "\n ...executing query [" + sql + "]"); failure,
  73 + ok(_,_,_) then success(unique)
74 }. 74 }.
75 75
76 define Maybe(String) 76 define Maybe(String)
77 get_original_query 77 get_original_query
78 ( 78 (
79 - Database db,  
80 - String dbName, // alias for attached database, 'main' for main database.  
81 - DbEntityType object_type,  
82 - String tableName,  
83 - Logger log 79 + Database db,
  80 + String dbName, // alias for attached database, 'main' for main database.
  81 + DbEntityType object_type,
  82 + String tableName,
  83 + (LogLevel, String) -> One log
84 ) = 84 ) =
85 if sql_query(db, "SELECT sql FROM " + dbName + ".sqlite_master where (type='"+to_String(object_type)+"') and tbl_name='" + tableName + "'") is 85 if sql_query(db, "SELECT sql FROM " + dbName + ".sqlite_master where (type='"+to_String(object_type)+"') and tbl_name='" + tableName + "'") is
86 { 86 {
87 - error(sql_error) then logError(log, "alter_table/get_original_query ERROR '" + sql_error.text + "'"); failure,  
88 - ok(_,table_cursor,_) then 87 + error(sql_error) then log(logError, "alter_table/get_original_query ERROR '" + sql_error.text + "'"); failure,
  88 + ok(_,table_cursor,_) then
89 if table_cursor(unique) is 89 if table_cursor(unique) is
90 { 90 {
91 - error(sql_error) then logError(log, "alter_table/get_original_query ERROR '" + sql_error.text + "'"); failure, 91 + error(sql_error) then log(logError, "alter_table/get_original_query ERROR '" + sql_error.text + "'"); failure,
92 no_more_row then failure, //can't find the table in sqlite_master, because the table is new 92 no_more_row then failure, //can't find the table in sqlite_master, because the table is new
93 row(current) then success(text(current)(0)) 93 row(current) then success(text(current)(0))
94 } 94 }
@@ -97,17 +97,17 @@ define Maybe(String) @@ -97,17 +97,17 @@ define Maybe(String)
97 define Bool 97 define Bool
98 has_rows 98 has_rows
99 ( 99 (
100 - Database db,  
101 - String tableName,  
102 - Logger log 100 + Database db,
  101 + String tableName,
  102 + (LogLevel, String) -> One log
103 ) = 103 ) =
104 if sql_query(db, "SELECT count(*) FROM " + tableName) is 104 if sql_query(db, "SELECT count(*) FROM " + tableName) is
105 { 105 {
106 - error(sql_error) then logError(log, "has_rows query ERROR '" + sql_error.text + "'"); false,  
107 - ok(_,table_cursor,_) then 106 + error(sql_error) then log(logError, "has_rows query ERROR '" + sql_error.text + "'"); false,
  107 + ok(_,table_cursor,_) then
108 if table_cursor(unique) is 108 if table_cursor(unique) is
109 { 109 {
110 - error(sql_error) then logError(log, "has_row run ERROR '" + sql_error.text + "'"); false, 110 + error(sql_error) then log(logError, "has_row run ERROR '" + sql_error.text + "'"); false,
111 no_more_row then false, 111 no_more_row then false,
112 row(current) then db_integer(current)(0) /= 0 112 row(current) then db_integer(current)(0) /= 0
113 } 113 }
@@ -126,34 +126,34 @@ define List(String) @@ -126,34 +126,34 @@ define List(String)
126 alter_table_extract_columns_list 126 alter_table_extract_columns_list
127 ( 127 (
128 SQLite3HeadersOrRow -> SQLite3Row table_cursor, 128 SQLite3HeadersOrRow -> SQLite3Row table_cursor,
129 - Logger log 129 + (LogLevel, String) -> One log
130 ) = 130 ) =
131 if table_cursor(headers) is 131 if table_cursor(headers) is
132 { 132 {
133 - error(sql_error) then logError(log, "alter_table_extract_columns_list ERROR '" + sql_error.text + "'"); [], 133 + error(sql_error) then log(logError, "alter_table_extract_columns_list ERROR '" + sql_error.text + "'"); [],
134 no_more_row then [], 134 no_more_row then [],
135 - row(headers) then alter_table_extract_columns_list_sub(headers, 0) 135 + row(headers) then alter_table_extract_columns_list_sub(headers, 0)
136 }. 136 }.
137 137
138 define String 138 define String
139 alter_table_extract_column_string 139 alter_table_extract_column_string
140 ( 140 (
141 - One -> DbRow table_cursor,  
142 - List(String) oldColumns,  
143 - Logger log 141 + One -> DbRow table_cursor,
  142 + List(String) oldColumns,
  143 + (LogLevel, String) -> One log
144 ) = 144 ) =
145 if table_cursor(unique) is 145 if table_cursor(unique) is
146 { 146 {
147 - error(sql_error) then logError(log, "alter_table_extract_columns_list ERROR '" + sql_error.text + "'"); "", 147 + error(sql_error) then log(logError, "alter_table_extract_columns_list ERROR '" + sql_error.text + "'"); "",
148 no_more_row then /*logDebug(log, "Extract columns answers 'no more row'");*/ "", 148 no_more_row then /*logDebug(log, "Extract columns answers 'no more row'");*/ "",
149 - row(row) then 149 + row(row) then
150 if row(1) is db_text(name) then 150 if row(1) is db_text(name) then
151 - with test = (String name2) |-> logDebug(log, "name: " + name + " / name2: " + name2); if name = name2 then true else false, 151 + with test = (String name2) |-> log(logDebug, "name: " + name + " / name2: " + name2); if name = name2 then true else false,
152 colString = alter_table_extract_column_string(table_cursor, oldColumns, log), 152 colString = alter_table_extract_column_string(table_cursor, oldColumns, log),
153 if find_element(oldColumns, test) is 153 if find_element(oldColumns, test) is
154 { 154 {
155 - failure then colString,  
156 - success(_) then logDebug(log, "found: " + name); 155 + failure then colString,
  156 + success(_) then log(logDebug, "found: " + name);
157 if is_empty(colString) then name else name + ", " + colString 157 if is_empty(colString) then name else name + ", " + colString
158 } 158 }
159 else "" 159 else ""
@@ -191,25 +191,25 @@ define Bool @@ -191,25 +191,25 @@ define Bool
191 public define Maybe(One) 191 public define Maybe(One)
192 alter_table 192 alter_table
193 ( 193 (
194 - Database db,  
195 - String dbName, // alias for attached database, 'main' for main database.  
196 - String tableName,  
197 - String newTableQuery,  
198 - Logger log 194 + Database db,
  195 + String dbName, // alias for attached database, 'main' for main database.
  196 + String tableName,
  197 + String newTableQuery,
  198 + (LogLevel, String) -> One log
199 ) = 199 ) =
200 with fullTableName = dbName + "." + tableName, 200 with fullTableName = dbName + "." + tableName,
201 if get_original_query(db, dbName, table, tableName, log) is 201 if get_original_query(db, dbName, table, tableName, log) is
202 { 202 {
203 failure then 203 failure then
204 - logInfo(log, "Creating table '" + fullTableName + "'... "); 204 + log(logInfo, "Creating table '" + fullTableName + "'... ");
205 if sql_query(db, newTableQuery) is error(sql_error) 205 if sql_query(db, newTableQuery) is error(sql_error)
206 - then logError(log, "ERROR : " + sql_error.text); failure  
207 - else logInfo(log, " --> ok."); success(unique), 206 + then log(logError, "ERROR : " + sql_error.text); failure
  207 + else log(logInfo, " --> ok."); success(unique),
208 success(originalTableQuery) then 208 success(originalTableQuery) then
209 if compare_creation_queries(tableName, originalTableQuery, newTableQuery) = false then 209 if compare_creation_queries(tableName, originalTableQuery, newTableQuery) = false then
210 - logInfo(log, "Updating table '" + fullTableName + "' on database... ");  
211 - println(originalTableQuery);  
212 - println(newTableQuery); 210 + log(logInfo, "Updating table '" + fullTableName + "' on database... ");
  211 + log(logDebug, originalTableQuery);
  212 + log(logDebug, newTableQuery);
213 if has_rows(db, fullTableName, log) is 213 if has_rows(db, fullTableName, log) is
214 { 214 {
215 false then 215 false then
@@ -217,8 +217,8 @@ public define Maybe(One) @@ -217,8 +217,8 @@ public define Maybe(One)
217 then failure 217 then failure
218 else if my_sql_query(db, newTableQuery, log ) is 218 else if my_sql_query(db, newTableQuery, log ) is
219 { 219 {
220 - failure then failure,  
221 - success(_) then logInfo(log, " --> ok."); success(unique) 220 + failure then failure,
  221 + success(_) then log(logInfo, " --> ok."); success(unique)
222 }, 222 },
223 true then 223 true then
224 with tempNameTable = tableName + "_temp", 224 with tempNameTable = tableName + "_temp",
@@ -229,20 +229,20 @@ public define Maybe(One) @@ -229,20 +229,20 @@ public define Maybe(One)
229 if my_sql_query(db, newTableQuery , log) is failure then failure else 229 if my_sql_query(db, newTableQuery , log) is failure then failure else
230 if sql_query(db, "SELECT * FROM " + tempNameTable) is 230 if sql_query(db, "SELECT * FROM " + tempNameTable) is
231 { 231 {
232 - error(sql_error) then logError(log, "alter_table: select * tempTable ERROR '" + sql_error.text + "'"); failure,  
233 - ok(get_cols,table_cursor2,_) then 232 + error(sql_error) then log(logError, "alter_table: select * tempTable ERROR '" + sql_error.text + "'"); failure,
  233 + ok(get_cols,table_cursor2,_) then
234 with oldColumns = get_cols(unique), 234 with oldColumns = get_cols(unique),
235 //print_list(oldColumns); 235 //print_list(oldColumns);
236 if sql_query(db, "PRAGMA " + dbName + ".table_info(" + tableName + ")") is 236 if sql_query(db, "PRAGMA " + dbName + ".table_info(" + tableName + ")") is
237 { 237 {
238 - error(sql_error) then logError(log, "alter_table: pragma table_info() ERROR '" + sql_error.text + "'"); failure, 238 + error(sql_error) then log(logError, "alter_table: pragma table_info() ERROR '" + sql_error.text + "'"); failure,
239 ok(_,table_cursor3,_) then 239 ok(_,table_cursor3,_) then
240 with newColumnsStr = alter_table_extract_column_string(table_cursor3, oldColumns, log), 240 with newColumnsStr = alter_table_extract_column_string(table_cursor3, oldColumns, log),
241 sql = "INSERT INTO " + fullTableName + " (" + newColumnsStr + ") SELECT " + newColumnsStr + " FROM " + tempNameTable, 241 sql = "INSERT INTO " + fullTableName + " (" + newColumnsStr + ") SELECT " + newColumnsStr + " FROM " + tempNameTable,
242 if sql_query(db, sql) is 242 if sql_query(db, sql) is
243 { 243 {
244 - error(sql_error) then logError(log, "alter_table ERROR '" + sql_error.text + "'\n\tquery = [" + sql + "]"); failure,  
245 - ok(_,_,_) then logInfo(log, " --> ok."); success(unique) 244 + error(sql_error) then log(logError, "alter_table ERROR '" + sql_error.text + "'\n\tquery = [" + sql + "]"); failure,
  245 + ok(_,_,_) then log(logInfo, " --> ok."); success(unique)
246 } 246 }
247 } 247 }
248 }, 248 },
@@ -257,10 +257,10 @@ public define Maybe(One) @@ -257,10 +257,10 @@ public define Maybe(One)
257 public define Maybe(One) 257 public define Maybe(One)
258 alter_table 258 alter_table
259 ( 259 (
260 - Database db,  
261 - String tableName,  
262 - String newTableQuery,  
263 - Logger log 260 + Database db,
  261 + String tableName,
  262 + String newTableQuery,
  263 + (LogLevel, String) -> One log
264 ) = 264 ) =
265 alter_table(db, "main", tableName, newTableQuery, log). 265 alter_table(db, "main", tableName, newTableQuery, log).
266 266
@@ -268,31 +268,31 @@ public define Maybe(One) @@ -268,31 +268,31 @@ public define Maybe(One)
268 public define Maybe(One) 268 public define Maybe(One)
269 alter_view 269 alter_view
270 ( 270 (
271 - Database db,  
272 - String dbName, // alias for attached database, 'main' for main database.  
273 - String viewName,  
274 - String newViewQuery,  
275 - Logger log 271 + Database db,
  272 + String dbName, // alias for attached database, 'main' for main database.
  273 + String viewName,
  274 + String newViewQuery,
  275 + (LogLevel, String) -> One log
276 ) = 276 ) =
277 with fullViewName = dbName + "." + viewName, 277 with fullViewName = dbName + "." + viewName,
278 if get_original_query(db, dbName, view, viewName, log) is 278 if get_original_query(db, dbName, view, viewName, log) is
279 { 279 {
280 failure then 280 failure then
281 - logInfo(log, "Creating view '" + fullViewName + "'... "); 281 + log(logInfo, "Creating view '" + fullViewName + "'... ");
282 if sql_query(db, newViewQuery) is error(sql_error) 282 if sql_query(db, newViewQuery) is error(sql_error)
283 - then logError(log, "ERROR : " + sql_error.text); failure  
284 - else logInfo(log, " --> ok."); success(unique), 283 + then log(logError, "ERROR : " + sql_error.text); failure
  284 + else log(logInfo, " --> ok."); success(unique),
285 success(originalViewQuery) then 285 success(originalViewQuery) then
286 if compare_creation_queries(viewName, originalViewQuery, newViewQuery) = false then 286 if compare_creation_queries(viewName, originalViewQuery, newViewQuery) = false then
287 - logInfo(log, "Updating view '" + fullViewName + "' on database... ");  
288 - println(originalViewQuery);  
289 - println(newViewQuery); 287 + log(logInfo, "Updating view '" + fullViewName + "' on database... ");
  288 + log(logDebug, originalViewQuery);
  289 + log(logDebug, newViewQuery);
290 if my_sql_query(db, "DROP VIEW " + fullViewName, log) is failure 290 if my_sql_query(db, "DROP VIEW " + fullViewName, log) is failure
291 then failure 291 then failure
292 else if my_sql_query(db, newViewQuery, log ) is 292 else if my_sql_query(db, newViewQuery, log ) is
293 { 293 {
294 - failure then failure,  
295 - success(_) then logInfo(log, " --> ok."); success(unique) 294 + failure then failure,
  295 + success(_) then log(logInfo, " --> ok."); success(unique)
296 } 296 }
297 else 297 else
298 success(unique) 298 success(unique)
@@ -301,10 +301,10 @@ public define Maybe(One) @@ -301,10 +301,10 @@ public define Maybe(One)
301 public define Maybe(One) 301 public define Maybe(One)
302 alter_view 302 alter_view
303 ( 303 (
304 - Database db,  
305 - String viewName,  
306 - String newViewQuery,  
307 - Logger log 304 + Database db,
  305 + String viewName,
  306 + String newViewQuery,
  307 + (LogLevel, String) -> One log
308 ) = 308 ) =
309 alter_view(db, "main", viewName, newViewQuery, log). 309 alter_view(db, "main", viewName, newViewQuery, log).
310 310
database/db_types.anubis
@@ -216,6 +216,15 @@ public define String @@ -216,6 +216,15 @@ public define String
216 . 216 .
217 217
218 public define String 218 public define String
  219 + get_time
  220 + (
  221 + DB_datetime dt
  222 + )=
  223 + with ba_dt = to_byte_array(dt.datetime),
  224 + to_string(extract(ba_dt, 11, 19))
  225 +.
  226 +
  227 +public define String
219 to_String 228 to_String
220 ( 229 (
221 DB_time t 230 DB_time t
database/db_utils.anubis
@@ -18,7 +18,7 @@ transmit calexium_lib/database/db_utils.anubis @@ -18,7 +18,7 @@ transmit calexium_lib/database/db_utils.anubis
18 transmit calexium_lib/database/db_binds.anubis 18 transmit calexium_lib/database/db_binds.anubis
19 transmit calexium_lib/database/db_update_fields.anubis 19 transmit calexium_lib/database/db_update_fields.anubis
20 20
21 -read calexium_lib/net_services_protocols/logger_service.anubis 21 +read calexium_lib/net_services_protocols/logger_client.anubis
22 22
23 public define Int one_year_seconds = 365 * 86400. // amount of seconds during 1 year 23 public define Int one_year_seconds = 365 * 86400. // amount of seconds during 1 year
24 // public define Int one_month_seconds = 31 * 86400. 24 // public define Int one_month_seconds = 31 * 86400.
@@ -41,7 +41,7 @@ define One @@ -41,7 +41,7 @@ define One
41 ) = 41 ) =
42 with t = unow - t0, 42 with t = unow - t0,
43 if t.seconds > 0 then 43 if t.seconds > 0 then
44 - logTrace("SQL", logMask("sql_profiling"), "[SQL LONG QUERY] " + __utime_to_string(t) + " from ("+msg+") executing [" + sql_query + "]") 44 + logTrace("", "SQL", logMask("sql_profiling"), "[SQL LONG QUERY] " + __utime_to_string(t) + " from ("+msg+") executing [" + sql_query + "]")
45 else 45 else
46 unique. 46 unique.
47 47
@@ -52,7 +52,7 @@ define One @@ -52,7 +52,7 @@ define One
52 String sql_query, 52 String sql_query,
53 String msg 53 String msg
54 ) = 54 ) =
55 - logTrace("SQL_TRACE", logMask("sql_trace"), "[SQL] " + __utime_to_string(unow - t0) + " from ("+msg+") executing [" + sql_query + "]"). 55 + logTrace("", "SQL_TRACE", logMask("sql_trace"), "[SQL] " + __utime_to_string(unow - t0) + " from ("+msg+") executing [" + sql_query + "]").
56 56
57 public define Result(DbError, One) 57 public define Result(DbError, One)
58 sql_transaction 58 sql_transaction
@@ -68,10 +68,10 @@ public define Result(DbError, One) @@ -68,10 +68,10 @@ public define Result(DbError, One)
68 (One _) |-> 68 (One _) |->
69 if db_query(db, sql_command) is 69 if db_query(db, sql_command) is
70 { 70 {
71 - error(err) then logError("DB", db_error(err,message));failure //error in the SQL request 71 + error(err) then logError("", "DB", db_error(err,message));failure //error in the SQL request
72 ok(_,cursor,_) then success(unique) 72 ok(_,cursor,_) then success(unique)
73 }, 73 },
74 - success( (DbError err) |-> logError("DB", db_error(err,message))), 74 + success( (DbError err) |-> logError("", "DB", db_error(err,message))),
75 600000, // max 600s 75 600000, // max 600s
76 200, // retry every 100 ms 76 200, // retry every 100 ms
77 (DbError _) |-> false 77 (DbError _) |-> false
@@ -101,7 +101,7 @@ public define DbQueryResult @@ -101,7 +101,7 @@ public define DbQueryResult
101 with t0 = unow, 101 with t0 = unow,
102 if sql_query_timeout(db, sql_query, initial_bindings, 60, 100, (DbError _) |-> false) is 102 if sql_query_timeout(db, sql_query, initial_bindings, 60, 100, (DbError _) |-> false) is
103 { 103 {
104 - error(sql_error) then logError("DB", db_error(sql_error,msg) + " executing [" + sql_query + "]"); 104 + error(sql_error) then logError("", "DB", db_error(sql_error,msg) + " executing [" + sql_query + "]");
105 __logLongQueries(t0, sql_query, msg); 105 __logLongQueries(t0, sql_query, msg);
106 error(sql_error), 106 error(sql_error),
107 ok(headers, cursor, reset) then 107 ok(headers, cursor, reset) then
@@ -146,7 +146,7 @@ public define SQLite3QueryResult @@ -146,7 +146,7 @@ public define SQLite3QueryResult
146 if sql_query_timeout(db, sql_query, initial_bindings, 120, 100) is 146 if sql_query_timeout(db, sql_query, initial_bindings, 120, 100) is
147 { 147 {
148 error(sql_error) then 148 error(sql_error) then
149 - logError("DB", db_error(sql_error,msg) /*+ " executing [" + sql_query + "]"*/); 149 + logError("", "DB", db_error(sql_error,msg) /*+ " executing [" + sql_query + "]"*/);
150 //println(" executing [" + sql_query + "]"); 150 //println(" executing [" + sql_query + "]");
151 __logQueries(t0, "[sql_query_timeout Error] "+sql_query, msg); 151 __logQueries(t0, "[sql_query_timeout Error] "+sql_query, msg);
152 __logLongQueries(t0, sql_query, msg); 152 __logLongQueries(t0, sql_query, msg);
@@ -179,7 +179,7 @@ public define SQLite3Row @@ -179,7 +179,7 @@ public define SQLite3Row
179 if sql_query_statement_timeout(sql_command_stmt, initial_bindings, 120, 100, msg) is 179 if sql_query_statement_timeout(sql_command_stmt, initial_bindings, 120, 100, msg) is
180 { 180 {
181 error(sql_error) then 181 error(sql_error) then
182 - logError("DB", db_error(sql_error,msg) /*+ " executing [" + sql_query + "]"*/); 182 + logError("", "DB", db_error(sql_error,msg) /*+ " executing [" + sql_query + "]"*/);
183 //println(" executing [" + sql_command_stmt + "]"); 183 //println(" executing [" + sql_command_stmt + "]");
184 __logQueries(t0, "[sql_query_statement_timeout Error]", msg); 184 __logQueries(t0, "[sql_query_statement_timeout Error]", msg);
185 __logLongQueries(t0, "stmt", msg); 185 __logLongQueries(t0, "stmt", msg);
@@ -204,7 +204,7 @@ public define String @@ -204,7 +204,7 @@ public define String
204 ) = 204 ) =
205 if table_cursor(unique) is 205 if table_cursor(unique) is
206 { 206 {
207 - error(sql_error) then logError("DB", db_error(sql_error, "db_get_String")); "", 207 + error(sql_error) then logError("", "DB", db_error(sql_error, "db_get_String")); "",
208 no_more_row then "", //can't find the symbol in the table, because the row is empty 208 no_more_row then "", //can't find the symbol in the table, because the row is empty
209 row(explorer) then text(explorer)(0) 209 row(explorer) then text(explorer)(0)
210 }. 210 }.
@@ -217,7 +217,7 @@ public define List(String) @@ -217,7 +217,7 @@ public define List(String)
217 ) = 217 ) =
218 if table_cursor(unique) is 218 if table_cursor(unique) is
219 { 219 {
220 - error(sql_error) then logError("DB", db_error(sql_error, "db_get_string_list")); reverse(so_far), 220 + error(sql_error) then logError("", "DB", db_error(sql_error, "db_get_string_list")); reverse(so_far),
221 no_more_row then reverse(so_far), //can't find the symbol in the table, because the row is empty 221 no_more_row then reverse(so_far), //can't find the symbol in the table, because the row is empty
222 row(explorer) then 222 row(explorer) then
223 with s = text(explorer)(0), 223 with s = text(explorer)(0),
@@ -233,7 +233,7 @@ public define List(String) @@ -233,7 +233,7 @@ public define List(String)
233 ) = 233 ) =
234 if table_cursor(unique) is 234 if table_cursor(unique) is
235 { 235 {
236 - error(sql_error) then logError("DB", db_error(sql_error, "db_get_string_list")); reverse(so_far), 236 + error(sql_error) then logError("", "DB", db_error(sql_error, "db_get_string_list")); reverse(so_far),
237 no_more_row then reverse(so_far), //can't find the symbol in the table, because the row is empty 237 no_more_row then reverse(so_far), //can't find the symbol in the table, because the row is empty
238 row(explorer) then 238 row(explorer) then
239 with s = text(explorer)(0), 239 with s = text(explorer)(0),
@@ -248,7 +248,7 @@ public define List(String) @@ -248,7 +248,7 @@ public define List(String)
248 ) = 248 ) =
249 if table_cursor(unique) is 249 if table_cursor(unique) is
250 { 250 {
251 - error(sql_error) then logError("DB", db_error(sql_error, "db_get_string_list")); [], 251 + error(sql_error) then logError("", "DB", db_error(sql_error, "db_get_string_list")); [],
252 no_more_row then [], //can't find the symbol in the table, because the row is empty 252 no_more_row then [], //can't find the symbol in the table, because the row is empty
253 row(explorer) then 253 row(explorer) then
254 with s = text(explorer)(0), 254 with s = text(explorer)(0),
@@ -263,7 +263,7 @@ public define Int @@ -263,7 +263,7 @@ public define Int
263 ) = 263 ) =
264 if table_cursor(unique) is 264 if table_cursor(unique) is
265 { 265 {
266 - error(sql_error) then logError("DB", db_error(sql_error, "db_get_integer")); 0, 266 + error(sql_error) then logError("", "DB", db_error(sql_error, "db_get_integer")); 0,
267 no_more_row then 0, 267 no_more_row then 0,
268 row(explorer) then (Int)db_integer(explorer)(0) 268 row(explorer) then (Int)db_integer(explorer)(0)
269 }. 269 }.
@@ -275,7 +275,7 @@ public define Maybe(Int) @@ -275,7 +275,7 @@ public define Maybe(Int)
275 ) = 275 ) =
276 if table_cursor(unique) is 276 if table_cursor(unique) is
277 { 277 {
278 - error(sql_error) then logError("DB", db_error(sql_error, "db_get_mb_integer")); failure, 278 + error(sql_error) then logError("", "DB", db_error(sql_error, "db_get_mb_integer")); failure,
279 no_more_row then failure, 279 no_more_row then failure,
280 row(explorer) then db_integer(explorer)(0) 280 row(explorer) then db_integer(explorer)(0)
281 }. 281 }.
@@ -289,7 +289,7 @@ public define List(Int) @@ -289,7 +289,7 @@ public define List(Int)
289 ) = 289 ) =
290 if table_cursor(unique) is 290 if table_cursor(unique) is
291 { 291 {
292 - error(sql_error) then logError("DB", db_error(sql_error, "db_get_integer_list")); reverse(so_far), 292 + error(sql_error) then logError("", "DB", db_error(sql_error, "db_get_integer_list")); reverse(so_far),
293 no_more_row then reverse(so_far), //can't find the symbol in the table, because the row is empty 293 no_more_row then reverse(so_far), //can't find the symbol in the table, because the row is empty
294 row(explorer) then 294 row(explorer) then
295 with s = (Int)db_integer(explorer)(0), 295 with s = (Int)db_integer(explorer)(0),
@@ -311,7 +311,7 @@ public define Float @@ -311,7 +311,7 @@ public define Float
311 ) = 311 ) =
312 if table_cursor(unique) is 312 if table_cursor(unique) is
313 { 313 {
314 - error(sql_error) then logError("DB", db_error(sql_error, "db_get_Float")); 0.0, 314 + error(sql_error) then logError("", "DB", db_error(sql_error, "db_get_Float")); 0.0,
315 no_more_row then 0.0, 315 no_more_row then 0.0,
316 row(explorer) then db_float(explorer)(0) 316 row(explorer) then db_float(explorer)(0)
317 }. 317 }.
@@ -324,7 +324,7 @@ public define List(Int) @@ -324,7 +324,7 @@ public define List(Int)
324 ) = 324 ) =
325 if table_cursor(unique) is 325 if table_cursor(unique) is
326 { 326 {
327 - error(sql_error) then logError("DB", db_error(sql_error, "db_get_integer_list")); reverse(so_far), 327 + error(sql_error) then logError("", "DB", db_error(sql_error, "db_get_integer_list")); reverse(so_far),
328 no_more_row then reverse(so_far), //can't find the symbol in the table, because the row is empty 328 no_more_row then reverse(so_far), //can't find the symbol in the table, because the row is empty
329 row(explorer) then 329 row(explorer) then
330 with s = (Int)db_integer(explorer)(0), 330 with s = (Int)db_integer(explorer)(0),
database/migration_common_sqlite3.anubis
@@ -14,7 +14,7 @@ read data_base/db_types.anubis //FK... @@ -14,7 +14,7 @@ read data_base/db_types.anubis //FK...
14 read data_base/sqlite_foreign_key.anubis 14 read data_base/sqlite_foreign_key.anubis
15 15
16 read calexium_lib/database/db_utils.anubis 16 read calexium_lib/database/db_utils.anubis
17 -read calexium_lib/net_services_protocols/logger_service.anubis 17 +//read calexium_lib/net_services_protocols/logger_service.anubis
18 transmit db_version.anubis 18 transmit db_version.anubis
19 19
20 public type DbTable: 20 public type DbTable:
@@ -78,16 +78,16 @@ public define Bool @@ -78,16 +78,16 @@ public define Bool
78 public define Maybe(One) 78 public define Maybe(One)
79 drop_all_triggers 79 drop_all_triggers
80 ( 80 (
81 - SQLite3DataBase db,  
82 - Logger log 81 + SQLite3DataBase db,
  82 + (LogLevel, String) -> One log
83 ) = 83 ) =
84 if sqlite3_query(db, "SELECT name FROM sqlite_master WHERE type = 'trigger'", []) is 84 if sqlite3_query(db, "SELECT name FROM sqlite_master WHERE type = 'trigger'", []) is
85 { 85 {
86 - error(err) then logError(log, db_error(err, "drop_all_triggers")); failure,  
87 - ok(_, cursor, _) then 86 + error(err) then log(logError, db_error(err, "drop_all_triggers")); failure,
  87 + ok(_, cursor, _) then
88 with drop_trigger = (String name) |-> if sqlite3_query(db, "DROP TRIGGER " + name, []) is 88 with drop_trigger = (String name) |-> if sqlite3_query(db, "DROP TRIGGER " + name, []) is
89 { 89 {
90 - error(err2) then logError(log, db_error(err2, "Failed to drop trigger '" + name + "'")), 90 + error(err2) then log(logError, db_error(err2, "Failed to drop trigger '" + name + "'")),
91 ok(_, cursor, _) then unique 91 ok(_, cursor, _) then unique
92 }, 92 },
93 map_forget(drop_trigger, db_get_string_list(cursor, [])); 93 map_forget(drop_trigger, db_get_string_list(cursor, []));
@@ -97,10 +97,10 @@ public define Maybe(One) @@ -97,10 +97,10 @@ public define Maybe(One)
97 public define Maybe(One) 97 public define Maybe(One)
98 create_tables 98 create_tables
99 ( 99 (
100 - SQLite3DataBase db,  
101 - Logger logger,  
102 - List(DbTable) tables,  
103 - String version_string 100 + SQLite3DataBase db,
  101 + (LogLevel, String) -> One logger,
  102 + List(DbTable) tables,
  103 + String version_string
104 ) = 104 ) =
105 if tables is 105 if tables is
106 { 106 {
@@ -111,19 +111,19 @@ public define Maybe(One) @@ -111,19 +111,19 @@ public define Maybe(One)
111 table(table_name, create_string) then 111 table(table_name, create_string) then
112 if alter_table(db, table_name, create_string, logger) is 112 if alter_table(db, table_name, create_string, logger) is
113 { 113 {
114 - failure then logError(logger, "Version "+version_string+": Can't create '"+table_name+"' table"); failure, 114 + failure then logger(logError, "Version "+version_string+": Can't create '"+table_name+"' table"); failure,
115 success(_) then create_tables(db, logger, t, version_string) 115 success(_) then create_tables(db, logger, t, version_string)
116 }, 116 },
117 table(db_name, table_name, create_string) then 117 table(db_name, table_name, create_string) then
118 if alter_table(db, db_name, table_name, create_string, logger) is 118 if alter_table(db, db_name, table_name, create_string, logger) is
119 { 119 {
120 - failure then logError(logger, "Version "+version_string+": Can't create '"+db_name+"."+table_name+"' table"); failure, 120 + failure then logger(logError, "Version "+version_string+": Can't create '"+db_name+"."+table_name+"' table"); failure,
121 success(_) then create_tables(db, logger, t, version_string) 121 success(_) then create_tables(db, logger, t, version_string)
122 }, 122 },
123 view(view_name, create_string) then 123 view(view_name, create_string) then
124 if alter_view(db, view_name, create_string, logger) is 124 if alter_view(db, view_name, create_string, logger) is
125 { 125 {
126 - failure then logError(logger, "Version "+version_string+": Can't create '"+view_name+"' view"); failure, 126 + failure then logger(logError, "Version "+version_string+": Can't create '"+view_name+"' view"); failure,
127 success(_) then create_tables(db, logger, t, version_string) 127 success(_) then create_tables(db, logger, t, version_string)
128 }, 128 },
129 } 129 }
@@ -133,10 +133,10 @@ public define Maybe(One) @@ -133,10 +133,10 @@ public define Maybe(One)
133 public define Maybe(One) 133 public define Maybe(One)
134 create_indexes 134 create_indexes
135 ( 135 (
136 - SQLite3DataBase db,  
137 - Logger logger,  
138 - List(String) indexes,  
139 - String version_string 136 + SQLite3DataBase db,
  137 + (LogLevel, String) -> One logger,
  138 + List(String) indexes,
  139 + String version_string
140 )= 140 )=
141 if indexes is 141 if indexes is
142 { 142 {
@@ -153,19 +153,19 @@ public define Maybe(One) @@ -153,19 +153,19 @@ public define Maybe(One)
153 public define One 153 public define One
154 make_foreign_key 154 make_foreign_key
155 ( 155 (
156 - SQLite3DataBase db,  
157 - String table_name,  
158 - String field_name,  
159 - String foreign_table_name,  
160 - String foreign_field_name,  
161 - Bool fk_null,  
162 - Bool fk_cascade,  
163 - Logger log 156 + SQLite3DataBase db,
  157 + String table_name,
  158 + String field_name,
  159 + String foreign_table_name,
  160 + String foreign_field_name,
  161 + Bool fk_null,
  162 + Bool fk_cascade,
  163 + (LogLevel, String) -> One log
164 ) = 164 ) =
165 if (Maybe(One))make_foreign_key(db, table_name, field_name, foreign_table_name, foreign_field_name, fk_null, fk_cascade, log) is 165 if (Maybe(One))make_foreign_key(db, table_name, field_name, foreign_table_name, foreign_field_name, fk_null, fk_cascade, log) is
166 { 166 {
167 failure then 167 failure then
168 - logError(log, "Can't create foreign key constraint between '"+table_name+"' and '"+foreign_table_name+"' tables"), 168 + log(logError, "Can't create foreign key constraint between '"+table_name+"' and '"+foreign_table_name+"' tables"),
169 success(_) then 169 success(_) then
170 unique 170 unique
171 }. 171 }.
@@ -173,20 +173,20 @@ public define One @@ -173,20 +173,20 @@ public define One
173 public define Maybe(One) 173 public define Maybe(One)
174 make_foreign_keys 174 make_foreign_keys
175 ( 175 (
176 - SQLite3DataBase db,  
177 - Logger logger, 176 + SQLite3DataBase db,
  177 + (LogLevel, String) -> One logger,
178 List((String, String, String, String, FK_Null, FK_Cascade)) relations, 178 List((String, String, String, String, FK_Null, FK_Cascade)) relations,
179 - String version_string 179 + String version_string
180 )= 180 )=
181 if relations is 181 if relations is
182 { 182 {
183 - [] then success(unique), 183 + [] then success(unique),
184 [h . t] then 184 [h . t] then
185 if h is (table_name, field_name, foreign_table_name, foreign_field_name, fk_null, fk_cascade) then 185 if h is (table_name, field_name, foreign_table_name, foreign_field_name, fk_null, fk_cascade) then
186 if (Maybe(One))make_foreign_key(db, table_name, field_name, foreign_table_name, foreign_field_name, fk_null, fk_cascade, logger) is 186 if (Maybe(One))make_foreign_key(db, table_name, field_name, foreign_table_name, foreign_field_name, fk_null, fk_cascade, logger) is
187 { 187 {
188 failure then 188 failure then
189 - logError(logger, "Version "+version_string+": Can't create foreign key constraint between '"+table_name+"' and '"+foreign_table_name+"' tables"); failure, 189 + logger(logError, "Version "+version_string+": Can't create foreign key constraint between '"+table_name+"' and '"+foreign_table_name+"' tables"); failure,
190 success(_) then 190 success(_) then
191 make_foreign_keys(db, logger, t, version_string) 191 make_foreign_keys(db, logger, t, version_string)
192 } 192 }
database/migration_sqlite3.anubis
@@ -13,16 +13,16 @@ read system/string.anubis @@ -13,16 +13,16 @@ read system/string.anubis
13 read data_base/sqlite.anubis 13 read data_base/sqlite.anubis
14 read calexium_lib/database/alter_table.anubis 14 read calexium_lib/database/alter_table.anubis
15 read calexium_lib/database/db_utils.anubis 15 read calexium_lib/database/db_utils.anubis
16 -read calexium_lib/net_services_protocols/logger_service.anubis 16 +//read calexium_lib/net_services_protocols/logger_client.anubis
17 read calexium_lib/types/version.anubis 17 read calexium_lib/types/version.anubis
18 18
19 read migration_common_sqlite3.anubis 19 read migration_common_sqlite3.anubis
20 20
21 public type Migration: 21 public type Migration:
22 migration(DB_Version version, 22 migration(DB_Version version,
23 - (SQLite3DataBase, Logger) -> Maybe(One) migrate_to,  
24 - (SQLite3DataBase, Logger) -> Maybe(One) create_tables,  
25 - (SQLite3DataBase, Logger) -> Maybe(One) create_indexes, 23 + (SQLite3DataBase, (LogLevel, String) -> One) -> Maybe(One) migrate_to,
  24 + (SQLite3DataBase, (LogLevel, String) -> One) -> Maybe(One) create_tables,
  25 + (SQLite3DataBase, (LogLevel, String) -> One) -> Maybe(One) create_indexes,
26 ). 26 ).
27 27
28 28
@@ -41,7 +41,7 @@ public define Bool @@ -41,7 +41,7 @@ public define Bool
41 public define Maybe(One) 41 public define Maybe(One)
42 backup_database 42 backup_database
43 ( 43 (
44 - Logger logger, 44 + (LogLevel, String) -> One logger,
45 // String current_version, 45 // String current_version,
46 String db_path, 46 String db_path,
47 String main_db_name, 47 String main_db_name,
@@ -62,18 +62,18 @@ public define Maybe(One) @@ -62,18 +62,18 @@ public define Maybe(One)
62 with dir_save = db_path + dir_save_database, 62 with dir_save = db_path + dir_save_database,
63 if (Maybe(String))make_directory(dir_save) is 63 if (Maybe(String))make_directory(dir_save) is
64 { 64 {
65 - failure then logError(logger, "Can't create directory '"+db_path + dir_save_database+"'"); failure, 65 + failure then logger(logError, "Can't create directory '"+db_path + dir_save_database+"'"); failure,
66 success(_) then 66 success(_) then
67 with copy_with_log = (String src, String dst) |-> 67 with copy_with_log = (String src, String dst) |->
68 if file_exists(src) then 68 if file_exists(src) then
69 if copy_file(src, dst) is 69 if copy_file(src, dst) is
70 { 70 {
71 - cant_read_file then logError(logger, "Can't read source file '" + src + "'."); failure,  
72 - cant_create_file then logError(logger, "Can't create destination file '" + dst + "'."); failure,  
73 - copy_error then logError(logger, "Can't copy file '" + src + "' to file '" + dst + "'."); failure,  
74 - copy_file_mode_error then logError(logger, "Can't get file mode for source file '" + src + "'."); failure,  
75 - copy_file_times_error then logError(logger, "Can't set file times into file '" + dst + "'."); failure,  
76 - copy_ok(_) then logInfo(logger, "File '" + dst + "' saved"); success(unique) 71 + cant_read_file then logger(logError, "Can't read source file '" + src + "'."); failure,
  72 + cant_create_file then logger(logError, "Can't create destination file '" + dst + "'."); failure,
  73 + copy_error then logger(logError, "Can't copy file '" + src + "' to file '" + dst + "'."); failure,
  74 + copy_file_mode_error then logger(logError, "Can't get file mode for source file '" + src + "'."); failure,
  75 + copy_file_times_error then logger(logError, "Can't set file times into file '" + dst + "'."); failure,
  76 + copy_ok(_) then logger(logInfo, "File '" + dst + "' saved"); success(unique)
77 } 77 }
78 else success(unique), 78 else success(unique),
79 with copy_db = (List(String) names) |-copy_db-> 79 with copy_db = (List(String) names) |-copy_db->
@@ -95,7 +95,7 @@ public define Maybe(One) @@ -95,7 +95,7 @@ public define Maybe(One)
95 public define Maybe(One) 95 public define Maybe(One)
96 backup_database 96 backup_database
97 ( 97 (
98 - Logger logger, 98 + (LogLevel, String) -> One logger,
99 SQLite3DataBase db, 99 SQLite3DataBase db,
100 String db_path, 100 String db_path,
101 String main_db_name 101 String main_db_name
@@ -105,7 +105,7 @@ public define Maybe(One) @@ -105,7 +105,7 @@ public define Maybe(One)
105 with v3_27 = version(3,27,0,0), 105 with v3_27 = version(3,27,0,0),
106 with sqlite_version = if sql_query_timeout(db, "SELECT sqlite_version();", "backup_database get version") is 106 with sqlite_version = if sql_query_timeout(db, "SELECT sqlite_version();", "backup_database get version") is
107 { 107 {
108 - error(_) then logError(logger, "Can't get sqlite version for backup");failure, 108 + error(_) then logger(logError, "Can't get sqlite version for backup");failure,
109 ok(_, cursor, _) then 109 ok(_, cursor, _) then
110 with sqlite_version_str = db_get_String(cursor), 110 with sqlite_version_str = db_get_String(cursor),
111 to_Version(sqlite_version_str) 111 to_Version(sqlite_version_str)
@@ -113,24 +113,24 @@ public define Maybe(One) @@ -113,24 +113,24 @@ public define Maybe(One)
113 113
114 if sqlite_version is 114 if sqlite_version is
115 { 115 {
116 - failure then logError(logger, "Can't get sqlite version for backup ");failure, 116 + failure then logger(logError, "Can't get sqlite version for backup ");failure,
117 success(sqlite_v) then 117 success(sqlite_v) then
118 //if the SQLite engine version is < 3.27 we use old method for backup 118 //if the SQLite engine version is < 3.27 we use old method for backup
119 if sqlite_v.numeric +< v3_27.numeric then 119 if sqlite_v.numeric +< v3_27.numeric then
120 - logWarning(logger, "The current SQLite engine v"+sqlite_v+" doesn't support vaccum into. Fallback to previous method"); 120 + logger(logWarning, "The current SQLite engine v"+sqlite_v+" doesn't support vaccum into. Fallback to previous method");
121 backup_database(logger, db_path, main_db_name, []) 121 backup_database(logger, db_path, main_db_name, [])
122 else 122 else
123 //construct the target folder for backup 123 //construct the target folder for backup
124 with dir_save = db_path + dir_save_database, 124 with dir_save = db_path + dir_save_database,
125 if (Maybe(String))make_directory(dir_save) is 125 if (Maybe(String))make_directory(dir_save) is
126 { 126 {
127 - failure then logError(logger, "Can't create directory '"+db_path + dir_save_database+"'"); failure, 127 + failure then logger(logError, "Can't create directory '"+db_path + dir_save_database+"'"); failure,
128 success(_) then 128 success(_) then
129 with filename = db_path + dir_save_database+get_current_datetime_condensed+"-"+main_db_name, 129 with filename = db_path + dir_save_database+get_current_datetime_condensed+"-"+main_db_name,
130 if sql_query(db, "VACUUM INTO '"+filename+"';") is 130 if sql_query(db, "VACUUM INTO '"+filename+"';") is
131 { 131 {
132 - error(err) then logError(logger,db_error(err, "Can't backup database into "+filename));failure,  
133 - ok(_,) then logInfo(logger, "database backuped into "+filename);success(unique) 132 + error(err) then logger(logError,db_error(err, "Can't backup database into "+filename));failure,
  133 + ok(_,) then logger(logInfo, "database backuped into "+filename);success(unique)
134 } 134 }
135 } 135 }
136 } 136 }
@@ -210,7 +210,7 @@ define Maybe(One) @@ -210,7 +210,7 @@ define Maybe(One)
210 do_table_indexes 210 do_table_indexes
211 ( 211 (
212 SQLite3DataBase db, 212 SQLite3DataBase db,
213 - Logger logger, 213 + (LogLevel, String) -> One logger,
214 Migration _migration, 214 Migration _migration,
215 (DB_Version) -> One update_db_version 215 (DB_Version) -> One update_db_version
216 )= 216 )=
@@ -229,12 +229,12 @@ define Maybe(One) @@ -229,12 +229,12 @@ define Maybe(One)
229 define Maybe(One) 229 define Maybe(One)
230 do_migration_loop 230 do_migration_loop
231 ( 231 (
232 - SQLite3DataBase db,  
233 - Logger logger, 232 + SQLite3DataBase db,
  233 + (LogLevel, String) -> One logger,
234 // String current_version, //current version of app 234 // String current_version, //current version of app
235 - DB_Version db_ver, //version found in db settings  
236 - List(Migration) migrations,  
237 - (DB_Version) -> One update_db_version, 235 + DB_Version db_ver, //version found in db settings
  236 + List(Migration) migrations,
  237 + (DB_Version) -> One update_db_version,
238 ) = 238 ) =
239 if migrations is 239 if migrations is
240 { 240 {
@@ -245,7 +245,7 @@ define Maybe(One) @@ -245,7 +245,7 @@ define Maybe(One)
245 if compare_db_version(db_ver, migration_version) is 245 if compare_db_version(db_ver, migration_version) is
246 { 246 {
247 less then 247 less then
248 - logInfo(logger, "[less] Migrating Database from version " + db_ver + " to version " + migration_version); 248 + logger(logInfo, "[less] Migrating Database from version " + db_ver + " to version " + migration_version);
249 if migrate_to(db, logger) is failure then 249 if migrate_to(db, logger) is failure then
250 failure 250 failure
251 else 251 else
@@ -253,15 +253,15 @@ define Maybe(One) @@ -253,15 +253,15 @@ define Maybe(One)
253 do_migration_loop(db, logger, migration_version, t, update_db_version) 253 do_migration_loop(db, logger, migration_version, t, update_db_version)
254 254
255 more then 255 more then
256 - logInfo(logger, "[more] No Database migration found from version " + db_ver + " to version " + migration_version); 256 + logger(logInfo, "[more] No Database migration found from version " + db_ver + " to version " + migration_version);
257 do_migration_loop(db, logger, db_ver, t, update_db_version) 257 do_migration_loop(db, logger, db_ver, t, update_db_version)
258 258
259 equal then 259 equal then
260 - logInfo(logger, "[equal] No Database migration found from version " + db_ver + " to version " + migration_version); 260 + logger(logInfo, "[equal] No Database migration found from version " + db_ver + " to version " + migration_version);
261 do_migration_loop(db, logger, db_ver, t, update_db_version) 261 do_migration_loop(db, logger, db_ver, t, update_db_version)
262 262
263 equal_but_sign then 263 equal_but_sign then
264 - logInfo(logger, "Database migration found from version " + db_ver + " to version " + migration_version+ " by hash difference "); 264 + logger(logInfo, "Database migration found from version " + db_ver + " to version " + migration_version+ " by hash difference ");
265 if migrate_to(db, logger) is failure then 265 if migrate_to(db, logger) is failure then
266 failure 266 failure
267 else 267 else
@@ -273,18 +273,18 @@ define Maybe(One) @@ -273,18 +273,18 @@ define Maybe(One)
273 public define Maybe(One) 273 public define Maybe(One)
274 do_migration 274 do_migration
275 ( 275 (
276 - SQLite3DataBase db,  
277 - Logger logger,  
278 - DB_Version current_db_version,  
279 - (DB_Version) -> One update_db_version,  
280 - List(Migration) all_migrations, 276 + SQLite3DataBase db,
  277 + (LogLevel, String) -> One logger,
  278 + DB_Version current_db_version,
  279 + (DB_Version) -> One update_db_version,
  280 + List(Migration) all_migrations,
281 )= 281 )=
282 if is_empty_database(db) then // new empty database 282 if is_empty_database(db) then // new empty database
283 - logInfo(logger, "No database found. Creating a new one..."); 283 + logger(logInfo, "No database found. Creating a new one...");
284 if last(all_migrations) is success(migration) then 284 if last(all_migrations) is success(migration) then
285 do_table_indexes(db, logger, migration, update_db_version) 285 do_table_indexes(db, logger, migration, update_db_version)
286 else 286 else
287 - logError(logger, "No database migration found. Can't create Database"); 287 + logger(logError, "No database migration found. Can't create Database");
288 failure 288 failure
289 else 289 else
290 ( 290 (
@@ -301,12 +301,12 @@ public define Maybe(One) @@ -301,12 +301,12 @@ public define Maybe(One)
301 do_create_indexes 301 do_create_indexes
302 ( 302 (
303 SQLite3DataBase db, 303 SQLite3DataBase db,
304 - Logger logger, 304 + (LogLevel, String) -> One logger,
305 List(Migration) all_migrations, 305 List(Migration) all_migrations,
306 )= 306 )=
307 if last(all_migrations) is 307 if last(all_migrations) is
308 { 308 {
309 - failure then logCriticalError(logger, "Index creation: migration list is empty!"); failure, 309 + failure then logger(logCriticalError, "Index creation: migration list is empty!"); failure,
310 success(last_migration) then 310 success(last_migration) then
311 if last_migration is migration(_, _, _, create_indexes) then 311 if last_migration is migration(_, _, _, create_indexes) then
312 if create_indexes(db, logger) is success(_) then 312 if create_indexes(db, logger) is success(_) then
database/sqlite_foreign_key.anubis
@@ -24,41 +24,41 @@ read data_base/db_types.anubis @@ -24,41 +24,41 @@ read data_base/db_types.anubis
24 define Maybe(One) 24 define Maybe(One)
25 my_sql_query 25 my_sql_query
26 ( 26 (
27 - Database db,  
28 - String sql,  
29 - Logger log 27 + Database db,
  28 + String sql,
  29 + (LogLevel, String) -> One log
30 ) = 30 ) =
31 if sql_query(db, sql) is 31 if sql_query(db, sql) is
32 { 32 {
33 - error(sql_error) then logError(log, "SQL ERROR: " + sql_error.text + "\n ...executing query [" + sql + "]"); failure,  
34 - ok(_,_,_) then success(unique) 33 + error(sql_error) then log(logError, "SQL ERROR: " + sql_error.text + "\n ...executing query [" + sql + "]"); failure,
  34 + ok(_,_,_) then success(unique)
35 }. 35 }.
36 36
37 public define Maybe(One) 37 public define Maybe(One)
38 alter_trigger 38 alter_trigger
39 ( 39 (
40 - Database db,  
41 - String trigger_name,  
42 - String sql,  
43 - Logger log 40 + Database db,
  41 + String trigger_name,
  42 + String sql,
  43 + (LogLevel, String) -> One log
44 ) = 44 ) =
45 if sql_query(db, "SELECT sql FROM sqlite_master WHERE type = 'trigger' AND name = " + db_make_sql_string(trigger_name)) is 45 if sql_query(db, "SELECT sql FROM sqlite_master WHERE type = 'trigger' AND name = " + db_make_sql_string(trigger_name)) is
46 { 46 {
47 - error(sql_error) then logError(log, "SQL ERROR: " + sql_error.text + "\n ...looking for trigger named [" + trigger_name + "]"); failure,  
48 - ok(_,cursor,_) then 47 + error(sql_error) then log(logError, "SQL ERROR: " + sql_error.text + "\n ...looking for trigger named [" + trigger_name + "]"); failure,
  48 + ok(_,cursor,_) then
49 if cursor(unique) is 49 if cursor(unique) is
50 { 50 {
51 - error(sql_error) then logError(log, "alter_trigger ERROR '" + sql_error.text + "'"); failure, 51 + error(sql_error) then log(logError, "alter_trigger ERROR '" + sql_error.text + "'"); failure,
52 no_more_row then my_sql_query(db, sql, log), 52 no_more_row then my_sql_query(db, sql, log),
53 row(current) then 53 row(current) then
54 with old_sql = text(current)(0), 54 with old_sql = text(current)(0),
55 if old_sql /= sql then 55 if old_sql /= sql then
56 - logDebug(log, "Old trigger was:\n" + old_sql + "\n");  
57 - logDebug(log, "New trigger is:\n" + sql + "\n");  
58 - logInfo(log, "Updating trigger '" + trigger_name + "'..."); 56 + log(logDebug, "Old trigger was:\n" + old_sql + "\n");
  57 + log(logDebug, "New trigger is:\n" + sql + "\n");
  58 + log(logInfo, "Updating trigger '" + trigger_name + "'...");
59 forget(my_sql_query(db, "DROP TRIGGER [" + trigger_name + "]", log)); 59 forget(my_sql_query(db, "DROP TRIGGER [" + trigger_name + "]", log));
60 - if my_sql_query(db, sql, log) is success(_) then logInfo (log, " --> ok."); success(unique)  
61 - else logError(log, " --> error!"); failure 60 + if my_sql_query(db, sql, log) is success(_) then log(logInfo, " --> ok."); success(unique)
  61 + else log(logError, " --> error!"); failure
62 else 62 else
63 success(unique) 63 success(unique)
64 } 64 }
@@ -76,7 +76,7 @@ public define Maybe(One) @@ -76,7 +76,7 @@ public define Maybe(One)
76 String foreign_field_name, 76 String foreign_field_name,
77 FK_Null fk_null, 77 FK_Null fk_null,
78 FK_Cascade fk_cascade, 78 FK_Cascade fk_cascade,
79 - Logger log 79 + (LogLevel, String) -> One log
80 ) = 80 ) =
81 with constrait_name = table_name + "__" + field_name + "__" + foreign_table_name, 81 with constrait_name = table_name + "__" + field_name + "__" + foreign_table_name,
82 sql_create = 82 sql_create =
@@ -128,7 +128,7 @@ public define Maybe(One) @@ -128,7 +128,7 @@ public define Maybe(One)
128 String foreign_field_name, 128 String foreign_field_name,
129 Bool field_can_be_null, 129 Bool field_can_be_null,
130 Bool delete, //delete_in_cascade ? 130 Bool delete, //delete_in_cascade ?
131 - Logger log 131 + (LogLevel, String) -> One log
132 ) = 132 ) =
133 make_foreign_key 133 make_foreign_key
134 ( 134 (
examples/minimal_web_site_vc.anubis
@@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
4 4
5 *Title* A minimal web site. 5 *Title* A minimal web site.
6 6
7 - *Copyright* Copyright © David RENÉwww.calexium.com. 7 + *Copyright* Copyright © David RENÉ.
8 8
9 *Released* 9 *Released*
10 10
mail/compose_email.anubis
@@ -14,7 +14,7 @@ read system/string.anubis @@ -14,7 +14,7 @@ read system/string.anubis
14 read system/logger.anubis 14 read system/logger.anubis
15 read system/data_io.anubis 15 read system/data_io.anubis
16 read web/mime.anubis 16 read web/mime.anubis
17 -read calexium_lib/net_services_protocols/logger_service.anubis 17 +//read calexium_lib/net_services_protocols/logger_service.anubis
18 read calexium_lib/mail/tools.anubis 18 read calexium_lib/mail/tools.anubis
19 read calexium_lib/mail/decode_mail.anubis 19 read calexium_lib/mail/decode_mail.anubis
20 read calexium_lib/mail/encode_mail.anubis 20 read calexium_lib/mail/encode_mail.anubis
net_services/CXM_generic_client.anubis
@@ -9,7 +9,7 @@ @@ -9,7 +9,7 @@
9 9
10 transmit system/message_transceiver.anubis 10 transmit system/message_transceiver.anubis
11 transmit system/logger.anubis 11 transmit system/logger.anubis
12 -transmit calexium_lib/net_services_protocols/logger_service.anubis 12 +//transmit calexium_lib/net_services_protocols/logger_service.anubis
13 13
14 transmit calexium_lib/CXM_message_constants.anubis 14 transmit calexium_lib/CXM_message_constants.anubis
15 transmit calexium_lib/net_services/CXM_net_services.anubis 15 transmit calexium_lib/net_services/CXM_net_services.anubis
net_services/send_file.anubis
@@ -18,7 +18,7 @@ read system/message_queue.anubis @@ -18,7 +18,7 @@ read system/message_queue.anubis
18 read system/files.anubis 18 read system/files.anubis
19 read system/logger.anubis 19 read system/logger.anubis
20 20
21 -read calexium_lib/net_services_protocols/logger_service.anubis 21 +read calexium_lib/net_services_protocols/logger_client.anubis
22 read calexium_lib/CXM_message_constants.anubis 22 read calexium_lib/CXM_message_constants.anubis
23 read calexium_lib/net_services/CXM_net_services.anubis 23 read calexium_lib/net_services/CXM_net_services.anubis
24 read calexium_lib/net_services/CXM_generic_protocol.anubis 24 read calexium_lib/net_services/CXM_generic_protocol.anubis
net_services_protocols/logger_client.anubis 0 → 100644
  1 +/*
  2 + * Created by PyramIDE.
  3 + * User: フランスのトトロ aka (David RENÉ)
  4 + * Date: 01/12/2019
  5 + * Time: 02:09
  6 + * © David RENÉ
  7 + */
  8 +
  9 +transmit system/logger.anubis
  10 +read system/message_transceiver.anubis
  11 +read system/parameter/inifile.anubis
  12 +read calexium_lib/CXM_message_constants.anubis
  13 +
  14 +define One
  15 + local_net_logger
  16 + (
  17 + String logger_server,
  18 + Message log_message
  19 + )=
  20 + with anb_log_path = find_and_replace(my_anubis_directory, "\\", "/") + "/anb_log/",
  21 + with ini = loadIniFile(anb_log_path+"config.ini"),
  22 + server_port = readWord32(ini, "GENERAL", "udp_port", 45514),
  23 + forget(send_message_by_udp(log_message, ip_address((127,0,0,1)), server_port))
  24 +.
  25 +
  26 +
  27 +define Message
  28 + create_log_msg
  29 + (
  30 + String uid,
  31 + String logger_name,
  32 + String log_string,
  33 + Int level
  34 + )=
  35 + with len = length(log_string),
  36 + //println("len log string "+len);
  37 + with string = if length(log_string) > 2048 then (if sub_string(log_string, 0, 2048) is success(s) then s else "?") + "... original log string length "+len
  38 + else log_string,
  39 + with log_msg = message(_CXM_LOGGER_LOG),
  40 + forget(add_string(log_msg, "UID", uid));
  41 + forget(add_string(log_msg, "LOG_NAME", logger_name));
  42 + forget(add_string(log_msg, "LOG_STRING", string));
  43 + forget(add_int32(log_msg, "LEVEL", truncate_to_Word32(level)));
  44 + forget(add_int32(log_msg, "THREAD_ID", virtual_machine_id));
  45 + log_msg
  46 +.
  47 +
  48 +
  49 +public define One
  50 + register_logger
  51 + (
  52 + String uid,
  53 + String logger_name,
  54 + Int format_size,
  55 + Bool absolute_path,
  56 + String file_name,
  57 + LogLevel file_level,
  58 + LogLevel cons_level
  59 + )=
  60 + with register_msg = message(_CXM_LOGGER_REGISTER_LOG),
  61 + forget(add_string(register_msg, "UID", uid));
  62 + forget(add_string(register_msg, "LOG_NAME", logger_name));
  63 + forget(add_int32(register_msg, "FORMAT_SIZE", truncate_to_Word32(format_size)));
  64 + forget(add_string(register_msg, "FILE_NAME", file_name));
  65 + forget( add_int32(register_msg, "FILE_LEVEL", truncate_to_Word32(get_log_level_value(file_level))));
  66 + forget( add_int32(register_msg, "CONS_LEVEL", truncate_to_Word32(get_log_level_value(cons_level))));
  67 + local_net_logger("127.0.0.1", register_msg)
  68 +.
  69 +
  70 +public define One
  71 + register_uid
  72 + (
  73 + String uid,
  74 + String default_path,
  75 + Bool absolute_path
  76 + )=
  77 + with register_msg = message(_CXM_LOGGER_REGISTER_UID),
  78 + forget(add_string(register_msg, "UID", uid));
  79 + forget(add_string(register_msg, "DEFAULT_PATH", default_path));
  80 + forget( add_bool(register_msg, "ABSOLUTE_PATH", absolute_path));
  81 + local_net_logger("127.0.0.1", register_msg)
  82 +.
  83 +
  84 +
  85 +public define One
  86 + log
  87 + (
  88 + String uid,
  89 + LogLevel level,
  90 + String logger_name,
  91 + String log_string
  92 + )=
  93 + local_net_logger("127.0.0.1", create_log_msg(uid, logger_name, log_string, get_log_level_value(level)))
  94 +.
  95 +
  96 +public define One
  97 + logNone
  98 + (
  99 + String uid,
  100 + String logger_name,
  101 + String log_string
  102 + )=
  103 + local_net_logger("127.0.0.1", create_log_msg(uid, logger_name, log_string, 0)).
  104 +
  105 +public define One
  106 + logCriticalError
  107 + (
  108 + String uid,
  109 + String logger_name,
  110 + String log_string
  111 + )=
  112 + local_net_logger("127.0.0.1", create_log_msg(uid, logger_name, log_string, 1)).
  113 +
  114 +public define One
  115 + logError
  116 + (
  117 + String uid,
  118 + String logger_name,
  119 + String log_string
  120 + )=
  121 + local_net_logger("127.0.0.1", create_log_msg(uid, logger_name, log_string, 2)).
  122 +
  123 +public define One
  124 + logWarning
  125 + (
  126 + String uid,
  127 + String logger_name,
  128 + String log_string
  129 + )=
  130 + local_net_logger("127.0.0.1", create_log_msg(uid, logger_name, log_string, 3)).
  131 +
  132 +public define One
  133 + logInfo(
  134 + String uid,
  135 + String logger_name,
  136 + String log_string
  137 + )=
  138 + local_net_logger("127.0.0.1", create_log_msg(uid, logger_name, log_string, 4)).
  139 +
  140 +public define One
  141 + logDebug
  142 + (
  143 + String uid,
  144 + String logger_name,
  145 + String log_string
  146 + )=
  147 + local_net_logger("127.0.0.1", create_log_msg(uid, logger_name, log_string, 5)).
  148 +
  149 +public define One
  150 + logTrace
  151 + (
  152 + String uid,
  153 + String logger_name,
  154 + LogMask log_mask,
  155 + String log_string
  156 + )=
  157 + with log_msg = create_log_msg(uid, logger_name, log_string, 6),
  158 + forget(add_string(log_msg, "LOG_MASK", log_mask.mask));
  159 + local_net_logger("127.0.0.1", log_msg).
net_services_protocols/logger_server.anubis 0 → 100644
  1 +/*
  2 + * Created by PyramIDE.
  3 + * User: フランスのトトロ aka (David RENÉ)
  4 + * Date: 01/12/2019
  5 + * Time: 02:08
  6 + * © David RENÉ
  7 + */
  8 +
  9 +read tools/basis.anubis
  10 +read system/logger.anubis
  11 +read system/data_io.anubis
  12 +read system/string.anubis
  13 +read system/files.anubis
  14 +read system/parameter/inifile.anubis
  15 +read system/message_queue.anubis
  16 +read calexium_lib/CXM_message_constants.anubis
  17 +
  18 + read logger_client.anubis
  19 +
  20 +type UID_loggers:
  21 + uid_loggers(
  22 + String uid,
  23 + String base_dir,
  24 + Var(List(Logger)) loggers
  25 + )
  26 +.
  27 +
  28 + /** get_uid_loggers
  29 + */
  30 +define Maybe(UID_loggers)
  31 + get_uid_loggers
  32 + (
  33 + List(UID_loggers) all_loggers, //all known logger
  34 + String _uid //searched UID loggers
  35 + )=
  36 + if all_loggers is
  37 + {
  38 + [] then failure,
  39 + [h . t] then
  40 + if h.uid = _uid then
  41 + success(h)
  42 + else
  43 + get_uid_loggers(t, _uid)
  44 + }
  45 +.
  46 +
  47 +define Maybe(Logger)
  48 + get_logger_from_uid
  49 + (
  50 + List(UID_loggers) all_loggers,
  51 + String _uid,
  52 + String log_name,
  53 + Logger anb_logger
  54 + )=
  55 + if all_loggers is
  56 + {
  57 + [] then failure,
  58 + [h . t] then
  59 + if h.uid = _uid then
  60 + if get_logger(*h.loggers, log_name) is
  61 + {
  62 + failure then logError(anb_logger, "can't find log ["+log_name+"] in uid ["+_uid+"]");failure,
  63 + success(log) then success(log)
  64 + }
  65 + else
  66 + get_logger_from_uid(t, _uid, log_name, anb_logger)
  67 + }
  68 +.
  69 +
  70 +define Maybe(Logger)
  71 + create_logger_from_message
  72 + (
  73 + Logger anb_logger,
  74 + Message msg,
  75 + String base_directory
  76 + )=
  77 + if find_string(msg, "LOG_NAME") is {failure then logError(anb_logger, "create_logger_from_message can't find LOG_NAME");failure, success(loggerName) then
  78 + if find_int32 (msg, "FORMAT_SIZE") is {failure then logError(anb_logger, "create_logger_from_message can't find FORMAT_SIZE");failure, success(formatting_size) then
  79 + if find_string(msg, "FILE_NAME") is {failure then logError(anb_logger, "create_logger_from_message can't find FILE_NAME");failure, success(fileName) then
  80 + if find_int32 (msg, "FILE_LEVEL") is {failure then logError(anb_logger, "create_logger_from_message can't find FILE_LEVEL");failure,success(_fileLevel) then
  81 + if find_int32 (msg, "CONS_LEVEL") is {failure then logError(anb_logger, "create_logger_from_message can't find CONS_LEVEL");failure,success(_consoleLevel) then
  82 +
  83 + with file_level = get_LogLevel_from_value(to_Int(_fileLevel)),
  84 + with console_level = get_LogLevel_from_value(to_Int(_consoleLevel)),
  85 + with final_file_path = base_directory + fileName,
  86 + make_directories(final_file_path);
  87 + success(createLogger(loggerName, to_Int(formatting_size), final_file_path, file_level, console_level))
  88 + }}}}}
  89 +.
  90 +
  91 + /** register one logger into UID
  92 + */
  93 +define One
  94 + register_logger
  95 + (
  96 + Var(List(UID_loggers)) logs,
  97 + Message msg,
  98 + String base_directory,
  99 + Logger anb_logger
  100 + )=
  101 +
  102 + if find_string(msg, "UID") is { failure then logError(anb_logger, "register_logger UID not found"), success(uid) then
  103 + if find_string(msg, "LOG_NAME") is { failure then logError(anb_logger, "register_logger can't find LOG_NAME"), success(log_name) then
  104 + if get_uid_loggers(*logs, uid) is
  105 + {
  106 + failure then //the uid logger doesn't exists so we create and
  107 + logError(anb_logger, "register_logger UID logger ["+uid+"] doesn't exist. Please register the UID first"),
  108 + success(_uid_log) then
  109 + if get_logger(*_uid_log.loggers, log_name) is
  110 + {
  111 + failure then
  112 + if create_logger_from_message(anb_logger, msg, _uid_log.base_dir) is
  113 + {
  114 + failure then unique,
  115 + success(new_log) then
  116 + _uid_log.loggers <- [new_log . *_uid_log.loggers];
  117 + logInfo(anb_logger, "register_logger: logger ["+log_name+"] created in ["+uid+"]")
  118 + }
  119 + success(_) then
  120 + logWarning(anb_logger, "register_logger: logger ["+log_name+"] already exists in ["+uid+"]")
  121 + }
  122 + }
  123 + }}
  124 +.
  125 +
  126 +define One
  127 + register_uid
  128 + (
  129 + Var(List(UID_loggers)) logs,
  130 + Message msg,
  131 + String log_server_base_dir,
  132 + Logger anb_logger
  133 + )=
  134 + if find_string(msg, "UID") is { failure then logError(anb_logger, "register_uid can't find UID field"), success(uid) then
  135 + with default_path = find_string(msg, "DEFAULT_PATH", "/"),
  136 + abs_path = find_bool(msg, "ABSOLUTE_PATH", false),
  137 + if get_uid_loggers(*logs, uid) is
  138 + {
  139 + failure then //the uid logger doesn't exists so we create and
  140 + with base_dir = if abs_path then default_path else log_server_base_dir + default_path,
  141 + with new_uid = uid_loggers(uid, base_dir, var([])),
  142 + logs <- [ new_uid . *logs];
  143 + logInfo(anb_logger, "register_uid UID logger ["+uid+"] success with base dir '"+base_dir+"'.")
  144 + success(_) then
  145 + logError(anb_logger, "register_uid UID logger ["+uid+"] already exists.")
  146 + }}
  147 +.
  148 +
  149 +define Bool
  150 + process_log
  151 + (
  152 + Logger log,
  153 + Message msg
  154 + )=
  155 + if find_string(msg, "LOG_STRING") is {failure then logError(log, "process_log can't find LOG_STRING");false, success(log_string) then
  156 + if find_int32 (msg, "LEVEL") is {failure then logError(log, "process_log can't find LEVEL");false, success(int_level) then
  157 + if find_int32 (msg, "THREAD_ID") is {failure then logError(log, "process_log can't find THREAD_ID");false, success(thread_id) then
  158 +
  159 + with level = get_LogLevel_from_value(to_Int(int_level)),
  160 + if level is logTrace then
  161 + if find_string(msg, "LOG_MASK") is
  162 + {
  163 + failure then
  164 + //println("process_log can't find LogMask ["+log_string+"]");
  165 + logError(log, "process_log can't find LOG_MASK");false,
  166 + success(log_mask) then logTrace(log, logMask(log_mask), log_string, thread_id); true
  167 + }
  168 + else doLog(log, log_string, level, thread_id); true
  169 +
  170 + }
  171 + }
  172 + }.
  173 +
  174 +define Bool
  175 + process_log
  176 + (
  177 + List(Logger) logs,
  178 + Message msg
  179 + )=
  180 + if find_string(msg, "LOG_NAME") is
  181 + {
  182 + failure then println("process_log can't find LOG_NAME");false,
  183 + success(log_name) then
  184 + if get_logger(logs, log_name) is
  185 + {
  186 + failure then println("can't find log ["+log_name+"]");false,
  187 + success(log) then process_log(log, msg)
  188 + }
  189 + }
  190 +.
  191 +
  192 +define Bool
  193 + process_log
  194 + (
  195 + List(UID_loggers) logs,
  196 + Message msg,
  197 + Logger anb_logger
  198 + )=
  199 + with uid = if find_string(msg, "UID") is { failure then "", success(_uid) then _uid},
  200 +
  201 + if find_string(msg, "LOG_NAME") is
  202 + {
  203 + failure then logError(anb_logger, "process_log can't find LOG_NAME");false,
  204 + success(log_name) then
  205 + if get_logger_from_uid(logs, uid, log_name, anb_logger) is
  206 + {
  207 + failure then logError(anb_logger, "can't find log ["+log_name+"] in ["+uid+"]");false,
  208 + success(log) then process_log(log, msg)
  209 + }
  210 + }
  211 +.
  212 +
  213 +public define String
  214 + data_preview
  215 + (
  216 + ByteArray data,
  217 + Int max
  218 + ) =
  219 + with l = length(data),
  220 + firsts_bytes = extract(data, 0, max),
  221 + "Length=" + l + "; String='"+to_string(firsts_bytes)+"' Buffer=[" + to_ascii(firsts_bytes) + (if l > max then "...]" else "]").
  222 +
  223 +
  224 +define (UDP_Socket, ByteArray, Truncation, Word32, Word32) -> One
  225 + make_udp_handler
  226 + (
  227 + Var(List(UID_loggers)) logs,
  228 + String base_directory,
  229 + Logger anb_logger
  230 + ) =
  231 + (
  232 + UDP_Socket socket,
  233 + ByteArray data,
  234 + Truncation truncation,
  235 + Word32 ip_address,
  236 + Word32 ip_port
  237 + ) |->
  238 + with ip = ip_addr_to_string(ip_address),
  239 + logTrace(anb_logger, logMask("Logger"), "LoggerServer: data received (" + length(data) + " bytes) from IP " + ip + "... ");
  240 + //println("LoggerServer: data received (" + length(data) + " bytes) from IP " + ip + "... ");
  241 + //println("LoggerServer: data_preview " + data_preview(data, 20));
  242 +
  243 + if receive_message_from_io(make_data_io(data)) is
  244 + {
  245 + failure then
  246 + //println("LoggerServer: Bad data packet received from IP " + ip + ": " + data_preview(data, 20));
  247 + logWarning(anb_logger, "LoggerServer: Bad data packet received from IP " + ip + ": " + data_preview(data, 20)),
  248 + success(msg) then
  249 + if *msg.what = _CXM_LOGGER_LOG then
  250 + forget(process_log(*logs, msg, anb_logger))
  251 + else if *msg.what = _CXM_LOGGER_REGISTER_UID then
  252 + forget(register_uid(logs, msg, base_directory, anb_logger))
  253 + else if *msg.what = _CXM_LOGGER_REGISTER_LOG then
  254 + forget(register_logger(logs, msg, base_directory, anb_logger))
  255 + else
  256 + logError(anb_logger, "LoggerService: wrong message_received. [" + to_hexa(*msg.what) + "] is not _CXM_LOGGER_LOG or _CXM_LOGGER_REGISTER or _CXM_LOGGER_UNREGISTER ")
  257 +}
  258 +.
  259 +define One
  260 + my_notify
  261 + (
  262 + One dummy
  263 + ) =
  264 + unique.
  265 +
  266 +public define Maybe(UDP_Server)
  267 + start_logger_server
  268 + (
  269 + Var(List(UID_loggers)) logs,
  270 + Logger anb_logger,
  271 + Word32 logger_listen_port,
  272 + String base_directory
  273 + ) =
  274 + if start_udp_server(0,
  275 + logger_listen_port,
  276 + make_udp_handler(logs, base_directory, anb_logger),
  277 + 8*1024,
  278 + my_notify) is
  279 + {
  280 + cannot_create_the_socket then logError(anb_logger, "Cannot create the listening socket."); failure,
  281 + cannot_bind_address_port then logError(anb_logger, "Cannot bind to port " + logger_listen_port + "."); failure,
  282 + access_denied then logError(anb_logger, "Cannot listen on port " + logger_listen_port + "."); failure,
  283 + ok(server) then logInfo(anb_logger, "LocalLog Server started on port " + logger_listen_port + "."); success(server)
  284 + }
  285 +.
  286 +
  287 +
  288 +global define One
  289 + anb_log
  290 + (
  291 + List(String) args
  292 + )=
  293 + with anb_log_path = find_and_replace(my_anubis_directory, "\\", "/") + "/anb_log/",
  294 + with ini = loadIniFile(anb_log_path+"config.ini"),
  295 + server_port = readWord32(ini, "GENERAL", "udp_port", 45514),
  296 + base_directory = readString(ini, "GENERAL", "base_directory", anb_log_path+"log/"),
  297 + make_directories(base_directory);
  298 + //create own logger
  299 + with anb_logger = createLogger("anb_log", 7, base_directory + "anb_log.log", logDebug, logDebug),
  300 +
  301 + forget(start_logger_server(var([]), anb_logger, server_port, base_directory))
  302 +.
net_services_protocols/logger_service.anubis renamed to net_services_protocols/logger_service_deprecated.anubis
1 /* 1 /*
2 * 2 *
3 - * User: David RENE 3 + * User: David RENÉ
4 * Date: 29/07/2007 4 * Date: 29/07/2007
5 * Time: 02:04 5 * Time: 02:04
6 - * (c) Calexium 6 + * © David RENÉ
7 * 7 *
8 */ 8 */
9 9
@@ -16,6 +16,8 @@ read system/logger.anubis @@ -16,6 +16,8 @@ read system/logger.anubis
16 read system/message_queue.anubis 16 read system/message_queue.anubis
17 read system/message_transceiver.anubis 17 read system/message_transceiver.anubis
18 18
  19 +read system/files.anubis
  20 +
19 read calexium_lib/CXM_message_constants.anubis 21 read calexium_lib/CXM_message_constants.anubis
20 read calexium_lib/net_services/CXM_net_services.anubis 22 read calexium_lib/net_services/CXM_net_services.anubis
21 read calexium_lib/net_services/CXM_generic_protocol.anubis 23 read calexium_lib/net_services/CXM_generic_protocol.anubis
@@ -26,12 +28,14 @@ read calexium_lib/net_services/CXM_generic_protocol.anubis @@ -26,12 +28,14 @@ read calexium_lib/net_services/CXM_generic_protocol.anubis
26 // and you define a function named 'logger_port' which simply return the port number as an Word32. 28 // and you define a function named 'logger_port' which simply return the port number as an Word32.
27 // Example: 29 // Example:
28 // public define Word32 logger_port = 33610. 30 // public define Word32 logger_port = 33610.
29 -read config/logger_config.anubis 31 +// read config/logger_config.anubis
30 32
31 // previous 'read' replaced by an empty declaration. Should be defined into main source file. 33 // previous 'read' replaced by an empty declaration. Should be defined into main source file.
32 public define Word32 logger_port. 34 public define Word32 logger_port.
33 35
34 -public define Word32 logger_srv_version = 1. 36 +
  37 +
  38 + public define Word32 logger_srv_version = 1.
35 39
36 /** 40 /**
37 * has_update scan the given message for finding corresponding available update 41 * has_update scan the given message for finding corresponding available update
@@ -60,7 +64,7 @@ public define Word32 logger_srv_version = 1. @@ -60,7 +64,7 @@ public define Word32 logger_srv_version = 1.
60 * 64 *
61 */ 65 */
62 66
63 -define Bool 67 + define Bool
64 process_log 68 process_log
65 ( 69 (
66 Logger log, 70 Logger log,
@@ -114,7 +118,7 @@ define Bool @@ -114,7 +118,7 @@ define Bool
114 } 118 }
115 }. 119 }.
116 120
117 -define Bool 121 + define Bool
118 process_log 122 process_log
119 ( 123 (
120 List(Logger) logs, 124 List(Logger) logs,
@@ -129,8 +133,29 @@ define Bool @@ -129,8 +133,29 @@ define Bool
129 failure then println("can't find log ["+log_name+"]");false, 133 failure then println("can't find log ["+log_name+"]");false,
130 success(log) then process_log(log, msg) 134 success(log) then process_log(log, msg)
131 } 135 }
132 - }.  
133 - 136 + }
  137 +.
  138 +
  139 +//define Bool
  140 +// process_log
  141 +// (
  142 +// List(UID_loggers) logs,
  143 +// Message msg
  144 +// )=
  145 +// with uid = if find_string(msg, "UID") is { failure then "", success(_uid) then _uid},
  146 +//
  147 +// if find_string(msg, "LogName") is
  148 +// {
  149 +// failure then println("process_log can't find LogName");false,
  150 +// success(log_name) then
  151 +// if get_logger(logs, uid, log_name) is
  152 +// {
  153 +// failure then println("can't find log ["+log_name+"]");false,
  154 +// success(log) then process_log(log, msg)
  155 +// }
  156 +// }
  157 +//.
  158 +
134 /** message_received is the principal 159 /** message_received is the principal
135 */ 160 */
136 /* 161 /*
@@ -183,7 +208,7 @@ define Bool @@ -183,7 +208,7 @@ define Bool
183 /****************** LOCAL UDP SERVICE *************/ 208 /****************** LOCAL UDP SERVICE *************/
184 209
185 210
186 -public define String 211 + public define String
187 data_preview 212 data_preview
188 ( 213 (
189 ByteArray data, 214 ByteArray data,
@@ -193,7 +218,7 @@ public define String @@ -193,7 +218,7 @@ public define String
193 firsts_bytes = extract(data, 0, max), 218 firsts_bytes = extract(data, 0, max),
194 "Length=" + l + "; String='"+to_string(firsts_bytes)+"' Buffer=[" + to_ascii(firsts_bytes) + (if l > max then "...]" else "]"). 219 "Length=" + l + "; String='"+to_string(firsts_bytes)+"' Buffer=[" + to_ascii(firsts_bytes) + (if l > max then "...]" else "]").
195 220
196 -define (UDP_Socket, ByteArray, Truncation, Word32, Word32) -> One 221 + define (UDP_Socket, ByteArray, Truncation, Word32, Word32) -> One
197 make_udp_handler 222 make_udp_handler
198 ( 223 (
199 List(Logger) logs, 224 List(Logger) logs,
@@ -223,19 +248,21 @@ define (UDP_Socket, ByteArray, Truncation, Word32, Word32) -&gt; One @@ -223,19 +248,21 @@ define (UDP_Socket, ByteArray, Truncation, Word32, Word32) -&gt; One
223 println("LoggerService: wrong message_received. [" + to_hexa(*msg.what) + "] is not _CXM_LOGGER_LOG ") 248 println("LoggerService: wrong message_received. [" + to_hexa(*msg.what) + "] is not _CXM_LOGGER_LOG ")
224 }. 249 }.
225 250
226 -define One 251 +
  252 +
  253 + define One
227 my_notify 254 my_notify
228 - (  
229 - One dummy  
230 - ) =  
231 - unique.  
232 -  
233 -public define Maybe(UDP_Server)  
234 - start_logger_server  
235 - (  
236 - List(Logger) logs,  
237 - Logger debug_logger  
238 - ) = 255 + (
  256 + One dummy
  257 + ) =
  258 + unique.
  259 +
  260 + public define Maybe(UDP_Server)
  261 + start_logger_server
  262 + (
  263 + List(Logger) logs,
  264 + Logger debug_logger
  265 + ) =
239 if start_udp_server(0, 266 if start_udp_server(0,
240 logger_port, 267 logger_port,
241 make_udp_handler(logs, debug_logger), 268 make_udp_handler(logs, debug_logger),
@@ -247,11 +274,13 @@ public define Maybe(UDP_Server) @@ -247,11 +274,13 @@ public define Maybe(UDP_Server)
247 access_denied then logError(debug_logger, "Cannot listen on port " + logger_port + "."); failure, 274 access_denied then logError(debug_logger, "Cannot listen on port " + logger_port + "."); failure,
248 ok(server) then logInfo(debug_logger, "LocalLog Server started on port " + logger_port + "."); success(server) 275 ok(server) then logInfo(debug_logger, "LocalLog Server started on port " + logger_port + "."); success(server)
249 }. 276 }.
250 - 277 +
  278 +
  279 +
251 280
252 /****************** CLIENT PART *******************/ 281 /****************** CLIENT PART *******************/
253 282
254 -define One 283 + define One
255 local_net_logger 284 local_net_logger
256 ( 285 (
257 String logger_server, 286 String logger_server,
@@ -260,7 +289,7 @@ define One @@ -260,7 +289,7 @@ define One
260 forget(send_message_by_udp(log_message, ip_address((127,0,0,1)), logger_port)). 289 forget(send_message_by_udp(log_message, ip_address((127,0,0,1)), logger_port)).
261 290
262 291
263 -define Message 292 + define Message
264 create_log_msg 293 create_log_msg
265 ( 294 (
266 String logger_name, 295 String logger_name,
@@ -280,67 +309,7 @@ define Message @@ -280,67 +309,7 @@ define Message
280 . 309 .
281 */ 310 */
282 311
283 -// HACK Begin of Hacked version  
284 - define String debug_log = "Debug".  
285 - define String config_log = "Config".  
286 - define String incoming_log = "Incoming".  
287 - define String outgoing_log = "Outgoing".  
288 - define String pop3_log = "POP3".  
289 - define String mailing_log = "Mailing".  
290 - define String errors_log = "Errors".  
291 - define String security_log = "Security".  
292 - define String spams_log = "Spams".  
293 - define String api_log = "MF_API".  
294 - define String internal_log = "INTERNAL".  
295 -  
296 -  
297 - define String  
298 - get_log_file  
299 - (  
300 - String log_name  
301 - ) =  
302 - if log_name = debug_log then "debug.log"  
303 - else if log_name = "SendMail" then "debug.log"  
304 - else if log_name = config_log then "config.log"  
305 - else if log_name = incoming_log then "incoming.log"  
306 - else if log_name = outgoing_log then "outgoing.log"  
307 - else if log_name = pop3_log then "pop3.log"  
308 - else if log_name = mailing_log then "mailing.log"  
309 - else if log_name = errors_log then "errors.log"  
310 - else if log_name = "DB" then "errors.log"  
311 - else if log_name = "SQL" then "sql_profiling.log"  
312 - else if log_name = security_log then "security.log"  
313 - else if log_name = spams_log then "spams.log"  
314 - else if log_name = api_log then "api.log"  
315 - else if log_name = internal_log then "internal"  
316 - else "unknown.log".  
317 -  
318 -  
319 - define One  
320 - local_net_logger  
321 - (  
322 - String logger_server,  
323 - One _  
324 - )=  
325 - unique.  
326 -  
327 - define One  
328 - create_log_msg  
329 - (  
330 - String logger_name,  
331 - String log_string,  
332 - Int level  
333 - )=  
334 - with log = createLogger(logger_name, 8, "/var/MailFountain/log/" + get_log_file(logger_name), logTrace, logTrace),  
335 - logLevel = get_LogLevel_from_value(level),  
336 - protect  
337 - doLog(log, log_string, logLevel, virtual_machine_id).  
338 -  
339 -// HACK End of Hacked version  
340 -  
341 -  
342 -  
343 -public define One 312 + public define One
344 log( 313 log(
345 LogLevel level, 314 LogLevel level,
346 String logger_name, 315 String logger_name,
@@ -348,49 +317,49 @@ public define One @@ -348,49 +317,49 @@ public define One
348 )= 317 )=
349 local_net_logger("127.0.0.1", create_log_msg(logger_name, log_string, get_log_level_value(level))). 318 local_net_logger("127.0.0.1", create_log_msg(logger_name, log_string, get_log_level_value(level))).
350 319
351 -public define One 320 + public define One
352 logNone( 321 logNone(
353 String logger_name, 322 String logger_name,
354 String log_string 323 String log_string
355 )= 324 )=
356 local_net_logger("127.0.0.1", create_log_msg(logger_name, log_string, 0)). 325 local_net_logger("127.0.0.1", create_log_msg(logger_name, log_string, 0)).
357 326
358 -public define One 327 + public define One
359 logCriticalError( 328 logCriticalError(
360 String logger_name, 329 String logger_name,
361 String log_string 330 String log_string
362 )= 331 )=
363 local_net_logger("127.0.0.1", create_log_msg(logger_name, log_string, 1)). 332 local_net_logger("127.0.0.1", create_log_msg(logger_name, log_string, 1)).
364 333
365 -public define One 334 + public define One
366 logError( 335 logError(
367 String logger_name, 336 String logger_name,
368 String log_string 337 String log_string
369 )= 338 )=
370 local_net_logger("127.0.0.1", create_log_msg(logger_name, log_string, 2)). 339 local_net_logger("127.0.0.1", create_log_msg(logger_name, log_string, 2)).
371 340
372 -public define One 341 + public define One
373 logWarning( 342 logWarning(
374 String logger_name, 343 String logger_name,
375 String log_string 344 String log_string
376 )= 345 )=
377 local_net_logger("127.0.0.1", create_log_msg(logger_name, log_string, 3)). 346 local_net_logger("127.0.0.1", create_log_msg(logger_name, log_string, 3)).
378 347
379 -public define One 348 + public define One
380 logInfo( 349 logInfo(
381 String logger_name, 350 String logger_name,
382 String log_string 351 String log_string
383 )= 352 )=
384 local_net_logger("127.0.0.1", create_log_msg(logger_name, log_string, 4)). 353 local_net_logger("127.0.0.1", create_log_msg(logger_name, log_string, 4)).
385 354
386 -public define One 355 + public define One
387 logDebug( 356 logDebug(
388 String logger_name, 357 String logger_name,
389 String log_string 358 String log_string
390 )= 359 )=
391 local_net_logger("127.0.0.1", create_log_msg(logger_name, log_string, 5)). 360 local_net_logger("127.0.0.1", create_log_msg(logger_name, log_string, 5)).
392 361
393 -public define One 362 + public define One
394 logTrace( 363 logTrace(
395 String logger_name, 364 String logger_name,
396 LogMask log_mask, 365 LogMask log_mask,
@@ -399,15 +368,3 @@ public define One @@ -399,15 +368,3 @@ public define One
399 with log_msg = create_log_msg(logger_name, log_string, 6), 368 with log_msg = create_log_msg(logger_name, log_string, 6),
400 forget(add_string(log_msg, "LogMask", log_mask.mask)); 369 forget(add_string(log_msg, "LogMask", log_mask.mask));
401 local_net_logger("127.0.0.1", log_msg). 370 local_net_logger("127.0.0.1", log_msg).
402 -  
403 -// HACK hacked version  
404 - public define One  
405 - logTrace(  
406 - String logger_name,  
407 - LogMask log_mask,  
408 - String log_string  
409 - )=  
410 - if log_mask is logMask(mask) then  
411 - if mask = "send_mail" | mask = "smtp" | mask = "sql_profiling" then  
412 - local_net_logger("127.0.0.1", create_log_msg(logger_name, log_string, 6))  
413 - else unique.  
net_services_protocols/logger_test.anubis 0 → 100644
  1 +/*
  2 + * Created by PyramIDE.
  3 + * User: フランスのトトロ aka (David RENÉ)
  4 + * Date: 01/12/2019
  5 + * Time: 19:52
  6 + * © David RENÉ
  7 + */
  8 +
  9 +read tools/basis.anubis
  10 +read logger_client.anubis
  11 +
  12 +global define One
  13 + logger_test
  14 + (
  15 + List(String) args
  16 + )=
  17 + with app0 = "logger test0",
  18 + uid0_dir = "logger test0/",
  19 +log_name0_0 = "log_name0_0",
  20 +log_name0_1 = "log_name0_1",
  21 + uid1 = "logger test1",
  22 +
  23 + register_uid(app0, uid0_dir, false);
  24 + register_logger(app0, log_name0_0, 8, false, log_name0_0+".log", logDebug, logDebug);
  25 + register_logger(app0, log_name0_1, 8, false, log_name0_1+".log", logDebug, logDebug);
  26 + sleep(1000);
  27 + logNone (app0, log_name0_0, "logNone in log_name0_0");
  28 + logNone (app0, log_name0_1, "logNone in log_name0_1");
  29 + logCriticalError (app0, log_name0_0, "logCriticalError in log_name0_0");
  30 + logCriticalError (app0, log_name0_1, "logCriticalError in log_name0_1");
  31 + logError (app0, log_name0_0, "logError in log_name0_0");
  32 + logError (app0, log_name0_1, "logError in log_name0_1");
  33 + logWarning (app0, log_name0_0, "logWarning in log_name0_0");
  34 + logWarning (app0, log_name0_1, "logWarning in log_name0_1");
  35 + logInfo (app0, log_name0_0, "logInfo in log_name0_0");
  36 + logInfo (app0, log_name0_1, "logInfo in log_name0_1");
  37 + logDebug (app0, log_name0_0, "logDebug in log_name0_0");
  38 + logDebug (app0, log_name0_1, "logDebug in log_name0_1")
  39 +.
web/CXM_making_a_web_site.anubis
@@ -1492,6 +1492,8 @@ public define HTML_Off_Form img(String src, String alt) @@ -1492,6 +1492,8 @@ public define HTML_Off_Form img(String src, String alt)
1492 public define HTML_Off_Form img(List(CoreAttrs) attrs, String src) = img(attrs, src, ""). 1492 public define HTML_Off_Form img(List(CoreAttrs) attrs, String src) = img(attrs, src, "").
1493 public define HTML_Off_Form img(CoreAttrs attr, String src) = img([attr], src, ""). 1493 public define HTML_Off_Form img(CoreAttrs attr, String src) = img([attr], src, "").
1494 public define HTML_Off_Form img(String src, Int width, Int height) = img([attr("width",to_String(width)+"px"), attr("height",to_String(height)+"px")], src, src). 1494 public define HTML_Off_Form img(String src, Int width, Int height) = img([attr("width",to_String(width)+"px"), attr("height",to_String(height)+"px")], src, src).
  1495 +public define HTML_Off_Form img(String src, String alt, Int width, Int height) =
  1496 + html_void_tag("img", [attr("src",src), attr("alt",alt), attr("width",to_String(width)+"px"), attr("height",to_String(height)+"px")]).
1495 public define HTML_Off_Form img(List(CoreAttrs) attrs, String src, String alt, Int width, Int height) = 1497 public define HTML_Off_Form img(List(CoreAttrs) attrs, String src, String alt, Int width, Int height) =
1496 html_void_tag("img", attrs + [attr("src",src), attr("alt",alt), attr("width",to_String(width)+"px"), attr("height",to_String(height)+"px")]). 1498 html_void_tag("img", attrs + [attr("src",src), attr("alt",alt), attr("width",to_String(width)+"px"), attr("height",to_String(height)+"px")]).
1497 public define HTML_Off_Form img(CoreAttrs _attr, String src, String alt, Int width, Int height) = 1499 public define HTML_Off_Form img(CoreAttrs _attr, String src, String alt, Int width, Int height) =
@@ -1561,6 +1563,12 @@ public define HTML_Off_Form strong(CoreAttrs attr, HTML_Off_Form content) @@ -1561,6 +1563,12 @@ public define HTML_Off_Form strong(CoreAttrs attr, HTML_Off_Form content)
1561 public define HTML_Off_Form strong(List(HTML_Off_Form) content) = html_tag("strong", [], content). 1563 public define HTML_Off_Form strong(List(HTML_Off_Form) content) = html_tag("strong", [], content).
1562 public define HTML_Off_Form strong(HTML_Off_Form content) = html_tag("strong", [], [content]). 1564 public define HTML_Off_Form strong(HTML_Off_Form content) = html_tag("strong", [], [content]).
1563 1565
  1566 + // <textarea>
  1567 +public define HTML_Off_Form textarea(List(CoreAttrs) attrs, List(HTML_Off_Form) content) = html_tag("textarea", attrs, content).
  1568 +public define HTML_Off_Form textarea(List(CoreAttrs) attrs, HTML_Off_Form content) = html_tag("textarea", attrs, [content]).
  1569 +public define HTML_Off_Form textarea(CoreAttrs attr, List(HTML_Off_Form) content) = html_tag("textarea", [attr], content).
  1570 +public define HTML_Off_Form textarea(CoreAttrs attr, HTML_Off_Form content) = html_tag("textarea", [attr], [content]).
  1571 +
1564 // <ul> 1572 // <ul>
1565 public define HTML_Off_Form ul(List(CoreAttrs) attrs, List(HTML_Off_Form) content) = html_tag("ul", attrs, content). 1573 public define HTML_Off_Form ul(List(CoreAttrs) attrs, List(HTML_Off_Form) content) = html_tag("ul", attrs, content).
1566 public define HTML_Off_Form ul(List(CoreAttrs) attrs, HTML_Off_Form content) = html_tag("ul", attrs, [content]). 1574 public define HTML_Off_Form ul(List(CoreAttrs) attrs, HTML_Off_Form content) = html_tag("ul", attrs, [content]).
web/plugin/plugin.anubis
@@ -59,8 +59,8 @@ public define List(WEB_Plugin) @@ -59,8 +59,8 @@ public define List(WEB_Plugin)
59 String plugin_file_mask //mask for loading plugin like "my_app_plugin_*.adm" 59 String plugin_file_mask //mask for loading plugin like "my_app_plugin_*.adm"
60 ) 60 )
61 = 61 =
62 - with files = directory_list(modules_directory, plugin_file_mask),  
63 - map_select((String file_name) |-> load_plugin(modules_directory+file_name), files) 62 + with files = directory_list(directory, plugin_file_mask),
  63 + map_select((String file_name) |-> load_plugin(directory+file_name), files)
64 //merge_sort(all_list, migration_less) 64 //merge_sort(all_list, migration_less)
65 . 65 .
66 66