Implement a custom logger for an Intercontinental Exchange Holdings ICE Data Services monitoring surface. The logger must filter entries by severity and format messages containing mixed JSON-compatible values consistently, so identical events produce identical output across clients.
Write custom_logger(entries, min_level).
Each entry is a dictionary with level, message, and context. message and context may be strings, integers, floating-point numbers, booleans, null, arrays, or nested objects. Return a list of formatted log lines for entries whose severity is at least min_level. Severity order is debug < info < warn < error.
Use this exact format:
[LEVEL] SERIALIZED_MESSAGE | context=SERIALIZED_CONTEXT
Serialization rules match compact JSON: strings use double quotes with necessary escaping, booleans are true or false, null becomes null, arrays preserve order, and object keys are emitted in lexicographic order. Do not mutate the input.
def custom_logger(entries, min_level):