-
Notifications
You must be signed in to change notification settings - Fork 49
Closed
Labels
Description
Create a "Core Web3API" for Web3API developers to use for logging information, warnings, and errors. Clients must provide a default plugin that implements this core API. App developers can always override it using a uri redirect.
Here're some "half baked" implementation details...
URI: w3://w3/logger
Schema:
# taken from https://www.tutorialspoint.com/log4j/log4j_logging_levels.htm
enum LogLevel {
ALL,
DEBUG,
INFO,
WARN,
ERROR,
FATAL
}
type Query {
log(
level: LogLevel!
message: String!
): Boolean!
}Auto-Generated Helper WASM Code (Assemblyscript):
enum LogLevel {
ALL,
DEBUG,
INFO,
...
}
class Console {
static log(message: string): boolean {
return logger_query_log(LogLevel.INFO, message);
}
static error(message: string): boolean {
return logger_query_log(LogLevel.ERROR, message);
}
...
}
function logger_query_log(level: LogLevel, message: string): boolean {
const argsBuf = serializelogArgs(level, message);
const result = w3_query(
"w3://w3/logger",
"query",
"log",
argsBuf
);
return deserializelogResult(result);
}Web3API Developer Experience (Assemblyscript):
import { Console } from "./w3";
function someFunc() {
Console.log("some useful info about my API");
}Reactions are currently unavailable