Page 103 - 《软件学报》2021年第9期
P. 103
贾统 等:基于程序层次树的日志打印位置决策方法 2727
5 总结与展望
本文主要研究软件系统的日志打印位置决策问题,即:给定一段代码,决策与这段代码相关的日志打印位
置.具体地,为了适用于不同的编程语言,并进行跨组件和跨软件系统的日志打印位置决策,本文提出一种通用
的自动化特征向量提取方法,通过构建程序层次树,屏蔽编程语言与不同程序模块实现细节的异构性,并提出一
种基于迁移学习的日志打印位置决策模型,利用特征迁移技术挖掘不同软件系统日志打印程序的共有特征空
间,迁移有用信息削减特征差异.在未来的工作中,拟加大实验规模,对本方法进行更加充分的验证.另外,拟从特
征生成和模型构建步骤优化现有方法,使之进一步支持跨编程语言不同软件系统的日志打印位置决策,拟进一
步研究如何利用深度学习技术(如深度迁移学习等)提升日志打印位置决策效果;与此同时,拟研究日志打印变
量和常量的自动化决策方法,以实现完全自动化的日志打印语句撰写.
References:
[1] Prasad P, Rich C. Market guide for AIOps platforms. 2018. https://www.gartner.com/doc/3892967/market-guide-aiops-platforms
[2] Paskin S. What is AIOps. 2018. https://www.bmc.com/blogs/what-is-aiops
[3] Yuan D, Park S, Zhou YY. Characterizing logging practices in open-source software. In: Proc. of the 34th Int’l Conf. on Software
Engineering. IEEE, 2012. 102−112.
[4] Zhu, JM, He PJ, Fu Q, et al. Learning to log: Helping developers make informed logging decisions. In: Proc. of the 37th Int’l Conf.
on Software Engineering. IEEE, 2015. 415−425.
[5] Chen BY, Jiang ZM. Characterizing and detecting anti-patterns in the logging code. In: Proc. of the 39th Int’l Conf. on Software
Engineering. IEEE, 2017. 71−81.
[6] Yuan D, Park S, Huang P, et al. Be conservative: Enhancing failure diagnosis with proactive logging. In: Proc. of the Usenix Conf.
on Operating Systems Design and Implementation, Vol.12. USENIX Association, 2012. 293−306.
[7] Zhao X, Rodrigues K, Luo Y, et al. Log20: Fully automated optimal placement of log printing statements under specified overhead
threshold. In: Proc. of the 26th Symp. on Operating Systems Principles. ACM, 2017. 565−581.
[8] Fu Q, Zhu JM, Hu WL, et al. Where do developers log? An empirical study on logging practices in industry. In: Proc. of the 36th
Int’l Conf. on Software Engineering. ACM, 2014. 24−33.
[9] Hadoop. http://hadoop.apache.org/
[10] Angel. https://github.com/Angel-ML/angel
[11] OpenStack. https://www.openstack.org/
[12] SaltCloud. https://www.saltstack.com/
[13] TensorFlow. https://tensorflow.google.cn/
[14] Lal S, Sardana N, Sureka A. LogOptPlus: Learning to optimize logging in catch and if programming constructs. In: Proc. of the
40th Annual Computer Software and Applications Conf. (COMPSAC). IEEE, 2016. 215−220.
[15] Ding R, Zhou HC, Lou JG, et al. Log2: A cost-aware logging mechanism for performance diagnosis. In: Proc. of the Annual
Technical Conf. USENIX Association, 2015. 139−150.
[16] Zhao X, Rodrigues K, Luo Y, et al. The game of twenty questions: Do you know where to log? In: Proc. of the 16th Workshop on
Hot Topics in Operating Systems. ACM, 2017. 125−131.
[17] Jia T, Li Y, Zhang CB, et al. Machine deserves better logging: A log enhancement approach for automatic fault diagnosis. In: Proc.
of the 29th IEEE Int’l Symp. on Reliability Engineering (ISSRE). IEEE, 2018. 106−111.
[18] Li H, Shang WY, Hassan AE. Which log level should developers choose for a new logging statement? Empirical Software
Engineering, 2017,22(4):1684−1716.
[19] Deun KV, Thorrez L, Coccia M, et al. Weighted sparse principal component analysis. Chemometrics and Intelligent Laboratory
Systems, 2019.
[20] Du M, Li FF, Zheng GN, et al. Deeplog: Anomaly detection and diagnosis from system logs through deep learning. In: Proc. of the
2017 ACM SIGSAC Conf. on Computer and Communications Security. ACM, 2017. 1285−1298.