Commit 9510293f86d189f0c96969f91c3cb48ab5ed3e37
1 parent
81ab652c
Create stand alone logger server. Change all call to log according to this
Showing
17 changed files
with
762 additions
and
286 deletions
Show diff stats
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
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 |
| 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). |
| 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) -> One | @@ -223,19 +248,21 @@ define (UDP_Socket, ByteArray, Truncation, Word32, Word32) -> 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. |
| 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 |