Js简单日志类

日期工具类:


function jsUtils() { };
jsUtils.dateFormat = function(fmt, date) {
	let ret;
	const opt = {
		"y+": date.getFullYear().toString(),        // 年
		"M+": (date.getMonth() + 1).toString(),     // 月
		"d+": date.getDate().toString(),            // 日
		"h+": date.getHours().toString(),           // 时
		"m+": date.getMinutes().toString(),         // 分
		"s+": date.getSeconds().toString(),         // 秒
		"S+": (date.getTime() % 1000) + "",       			// 毫秒
		// 有其他格式化字符需求可以继续添加,必须转化成字符串
	};
	for (let k in opt) {
		ret = new RegExp("(" + k + ")").exec(fmt);
		if (ret) {
			fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
		};
	};
	return fmt;
}

日志工具类:

var logger = function() {
	var levels = {
		trace: {
			levelStyle: 'background:#77787b; color: #fff; border-radius: 3px 0 0 3px;',
			dateStyle: 'background: #1475B2; color: #fff; border-radius: 3px 0 0 3px;',
			methodStyle: 'background: #2F4F4F; color: #fff; border-radius: 3px 0 0 3px;',
			lineStyle: 'color: #fff; border-radius: 3px 0 0 3px;',
			infoStyle: 'background:#77787b; color: #fff; border-radius: 3px 0 0 3px;',
			level: 0,
			name: "trace"
		},
		debug: {
			levelStyle: 'background: #3c3645;  color: #fff; border-radius: 3px 0 0 3px;',
			dateStyle: 'background: #1475B2; color: #fff; border-radius: 3px 0 0 3px;',
			methodStyle: 'background: #2F4F4F; color: #fff; border-radius: 3px 0 0 3px;',
			lineStyle: 'color: #fff; border-radius: 3px 0 0 3px;',
			infoStyle: 'background: #3c3645; color: #fff; border-radius: 3px 0 0 3px;',
			level: 1,
			name: "debug"
		},
		info: {
			levelStyle: 'background: #005831; color: #fff; border-radius: 3px 0 0 3px;',
			dateStyle: 'background: #1475B2; color: #fff; border-radius: 3px 0 0 3px;',
			methodStyle: 'background: #2F4F4F; color: #fff; border-radius: 3px 0 0 3px;',
			lineStyle: 'color: #fff; border-radius: 3px 0 0 3px;',
			infoStyle: 'background: #005831; color: #fff; border-radius: 3px 0 0 3px;',
			level: 2,
			name: "info"
		},
		warn: {
			levelStyle: 'background: #f58220; color: #fff; border-radius: 3px 0 0 3px;',
			dateStyle: 'background: #1475B2; color: #fff; border-radius: 3px 0 0 3px;',
			methodStyle: 'background: #2F4F4F; color: #fff; border-radius: 3px 0 0 3px;',
			lineStyle: 'color: #fff; border-radius: 3px 0 0 3px;',
			infoStyle: 'background: #f58220; color: #fff; border-radius: 3px 0 0 3px;',
			level: 3,
			name: "warn"
		},
		error: {
			levelStyle: 'background: #d71345; color: #fff; border-radius: 3px 0 0 3px;',
			dateStyle: 'background: #1475B2; color: #fff; border-radius: 3px 0 0 3px;',
			methodStyle: 'background: #2F4F4F; color: #fff; border-radius: 3px 0 0 3px;',
			lineStyle: 'color: #fff; border-radius: 3px 0 0 3px;',
			infoStyle: 'background: #d71345; color: #fff; border-radius: 3px 0 0 3px;',
			level: 4,
			name: "error"
		},
		fatal: {
			levelStyle: 'background: #a7324a; color: #fff; border-radius: 3px 0 0 3px;',
			dateStyle: 'background: #1475B2; color: #fff; border-radius: 3px 0 0 3px;',
			methodStyle: 'background: #2F4F4F; color: #fff; border-radius: 3px 0 0 3px;',
			lineStyle: 'color: #fff; border-radius: 3px 0 0 3px;',
			infoStyle: ' color: #a7324a; border-radius: 3px 0 0 3px;',
			level: 5,
			name: "fatal"
		},
		off: {
			levelStyle: 'background: #005831; color: #fff; border-radius: 3px 0 0 3px;',
			dateStyle: 'background: #1475B2; color: #fff; border-radius: 3px 0 0 3px;',
			methodStyle: 'background: #2F4F4F; color: #fff; border-radius: 3px 0 0 3px;',
			lineStyle: 'color: #fff; border-radius: 3px 0 0 3px;',
			infoStyle: 'background: #005831; color: #fff; border-radius: 3px 0 0 3px;',
			level: 6,
			name: "off"
		}
	}
	logger.prototype.dateformat = "yyyy-MM-dd hh:mm:ss:SSS";
	logger.prototype.levels = levels;
	logger.prototype.useLevel = levels.info;
	logger.prototype.print = function(level, msg,... params) {
		if (level.level < logger.useLevel.level) {
			return;
		}
		let infoArg = [];
		for (let i = 2; i < arguments.length; i++) {
			infoArg = arguments[i];
		}
		let fullMsg = "";
		fullMsg += "%c";
		fullMsg += jsUtils.dateFormat("hh:mm:ss.SSS", new Date());
		fullMsg += "%c";
		fullMsg += "[" + level.name + "] ";
		fullMsg += "%c  --  %c"
		fullMsg += msg;
	    console.info(fullMsg, level.dateStyle, level.levelStyle, level.lineStyle, level.infoStyle,... params);
	};

	logger.prototype.trace = function(msg,... params) {
 
		logger.print(logger.levels.trace,  msg,... params);
	};
	logger.prototype.debug = function(msg, ... params) {

		logger.print(logger.levels.debug,  msg, ... params);
	};
	logger.prototype.info = function(msg, ... params) {
	
		logger.print(logger.levels.info, msg,  ... params);
	};
	logger.prototype.warn = function(msg, ... params) {

		logger.print(logger.levels.warn,  msg, ... params);
	};
	logger.prototype.error = function(msg, ... params) {

		logger.print(logger.levels.error,msg, ... params);
	};
	logger.prototype.fatal = function(msg, ... params) {

		logger.print(logger.levels.fatal,  msg, ... params);
	};
};
logger = new logger();

 测试代码:

function test() {
	logger.useLevel = logger.levels.trace;
	let temp = 1314;
	let text = "这是文本文本";
	let date =new Date();
	let obj={
		name:"张山",
		age:64
	}
	logger.trace("低级别调试消息 数字:%O  文本:%O 日期:%O 对象:%O", temp, text,date,obj);
	logger.debug("调试消息  数字:%O  文本:%O 日期:%O 对象:%O", temp, text,date,obj);
	logger.warn("警告消息  数字:%O  文本:%O 日期:%O 对象:%O", temp, text,date,obj);
	logger.error("错误消息  数字:%O  文本:%O 日期:%O 对象:%O", temp, text,date,obj);
	logger.fatal("致命错误消息  数字:%O  文本:%O 日期:%O 对象:%O", temp, text,date,obj);
}
test();

测试结果:

测试结果图片

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值