柯里化可将日志级别预先固定,生成专用日志函数,如const info = createlogger('info'); info('消息'),支持添加时间戳、前缀等扩展,并能统一控制环境降级。

柯里化能让你把日志函数的级别(如 info、warn、error)提前固定,生成专用的日志函数,避免每次调用都重复传入级别参数。
用柯里化预设日志级别
原生 console 方法不带级别语义,直接封装一层,再用柯里化分离「级别」和「消息」:
- 先定义一个通用日志函数:
log(level, message) - 用柯里化把它变成
log('info')→ 返回一个只等message的函数 - 这样就能写出
const info = log('info'); info('用户登录成功');
一行实现柯里化日志工厂
不需要复杂工具,箭头函数就能搞定:
const createLogger = level => message => console[level](`[${level.toUpperCase()}] ${message}`);
然后按需创建:
Java JDK 25 来自 OpenJDK 官方归档,版本为 JDK 25,本条下载地址已指向官方 Windows x64 zip 安装包直链,适合调试旧项目或兼容旧版 Java 运行环境。
const debug = createLogger('debug');const error = createLogger('error');-
error('网络请求失败');→ 输出[ERROR] 网络请求失败
支持扩展上下文与格式化
实际项目中常要加时间戳、模块名等。柯里化仍适用,只需多一层参数:
- 定义:
const logger = (level, prefix) => (msg) => console[level](`[${new Date().toISOString()}][${prefix}][${level}] ${msg}`) - 使用:
const apiLog = logger('info', 'API');,后续调用apiLog('获取用户列表') - 也可以先固定级别再补前缀:
const warn = logger('warn');,再warn('配置缺失')
配合环境自动降级或屏蔽
开发时全量输出,生产环境可能只保留 error。柯里化后容易统一控制:
- 在
createLogger内部加判断:if (process.env.NODE_ENV === 'production' && level !== 'error') return; - 所有通过它生成的
info、warn函数在生产环境自动静默 - 无需修改各处调用,只改工厂逻辑即可
不复杂但容易忽略:柯里化不是为了炫技,而是让「配置一次,复用多次」这件事更自然。日志级别正是典型场景——固定维度 + 多次调用。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










