APIJSON icon indicating copy to clipboard operation
APIJSON copied to clipboard

apijson-orm和apijson-framework里面打印日志都是输出到控制台,是怎么考虑的

Open minshiwu opened this issue 4 years ago • 5 comments

环境信息

  • 系统: Linux
  • JDK: 1.8
  • 数据库: 5.7.22
  • APIJSON: 4.6.0

我看apijson里面,打印日志都通过这个Log类来完成。这个类注释:标明是测试使用。但是我们看apijson源码里面很多类,都是使用这个Log输出日志。关键这个类直接输出到console上。而且不支持行号,线程号等信息打印。为什么不使用slf4j这种标准的日志框架。这个是怎么考虑的。


/**测试用Log
 * @modifier Lemon
 */
public class Log {

	public static boolean DEBUG = true;
	
	/**
	 * @param TAG
	 * @param msg
	 */
	public static void d(String TAG, String msg) {
		if (DEBUG) {
			System.err.println(TAG + ".DEBUG: " + msg);
		}
	}

minshiwu avatar Mar 18 '21 03:03 minshiwu

为了减少外部依赖(减少库下载时间、编译时间、第三方库问题导致编译/运行失败的概率)和方便对外开源过审(License 合规)。 感谢华为工程师的反馈~

TommyLemon avatar Mar 18 '21 07:03 TommyLemon

System.out.println 内部实现 image 内部是有锁的,如果日志这么打感觉不能上生产

j2go avatar May 13 '21 16:05 j2go

System.out.println 内部实现 image 内部是有锁的,如果日志这么打感觉不能上生产

感谢反馈,日志后续会优化,支持通过重写方法来自定义

TommyLemon avatar Jun 28 '21 08:06 TommyLemon

日志现在有优化过吗

mzlxl avatar Apr 01 '22 06:04 mzlxl

@j2go @1139221421 不仅我自己优化过,腾讯同事和其它贡献者也提了 PR 优化日志这块 https://github.com/Tencent/APIJSON/pull/212 https://github.com/Tencent/APIJSON/pull/238

上生产环境或做性能测试前 Log.DEBUG = false 关日志,避免影响性能。

TommyLemon avatar Apr 03 '22 14:04 TommyLemon