引用原错误提交.

本页的目的是汇总初始发现并全面替换全RIJava代码库中所有日志报表如下:
前头
if(Loging.Logging)日志.warn

后传
warn日志

初始方法包括尝试创建 sED脚本,遍历.java文件并识别日志语句需要修改单页制作显示日志语句样本需要正确解析修改

SED允许执行词法替换和修改字符序列然而,这还不够,因为我们需要能够对日志语句作下列语法分析:

  1. 识别并剖析布林表达式任意if语句 :样本6,样本9,样本10,样本11,样本22.
  2. 正确识别“ Logoger”变量样本16,样本25.
  3. 正确识别日志对象以提取日志级别样本12,样本14,样本15,样本19,样本20,样本21.
  4. 日志语句内跟踪方法调用样本7,样本12,样本19,样本20,样本21,样本24.
  5. 修改原日志语句时保留原源码格式化,即使它符合编码标准样本1,样本8,样本17.

以上要求解析ava代码片段进AST表示式(抽象语法树),适当修改树并写回源码文本简单原型Java解析库javaparser.可惜库记不住源文件原白空间格式化,所以当它写回文本窗体时,会有很多非语法白空间修改

EclipseJDT及其avaaaST解析实现前景很好看 允许完全控制白空间格式化控制单行ava应用中使用JDT框架需要大量工作,所以日志修复需要写成Eclipse插件下图文章内容并就如何实现基本实现提供指南

悬疑问题

  1. 如何处理日志内语句样本13,样本18
  2. 使用 Eclipse插件时, 是否有自动化/ 描述日志修正程序执行方式
  • 无标签

5注释

  1. 未知用户

    IntelliJ结构搜索替换特征,允许你访问AST。免费版不可用,但最终版可评价(我有终极版拷贝)。

    见:

    http://www.jetbrains.com/idea/documentation/ssr.html

    http://www.onboard.jetbrains.com/articles/04/10/ssr/

    1. 未知用户

      基本思想如何实现 ASTs是这样:

      1. 主类定义中定位变量注意变量名示例:
        静态终级日志=日志Category.getInstance("ManagerManager") : null;
      2. 查找布林类变量使用LoGGing,例如
        私有静态终极FILTERLOGING
        万一找不到,假设寻宝类执行日志或LOGGING.LOGGINGif it does not
      3. 定位全部if类别内含有第2步识别变量名称的语句
      4. 内体if语句表示所有含有方法调用的第1步识别变量名称指令随附方法引用
      5. 验证第四步所有识别语句调法相同名称,即log.warn("...");log.info("...");
      6. 插入附加布尔语语句if三步表单表达式&& log.isDebugEnabledFor(Level.WARN)

      IntelliJ能执行这样的操作吗?

  2. 未知用户

    改变的主要原因是避免字符串拼接后评价日志采集器记录强度吗?

    if so,我认为,如果帮助者方法添加到日志API中,则改变需求即告消去。

    1. 未知用户

      举个例子

  3. 未知用户

    部分统计:RI源码库中约5 894日志
    grep-rloging*grep-vsvn
    5894