大佬教程收集整理的这篇文章主要介绍了如何在groovy中为类/方法名配置java.util.logging?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
import java.util.logging.Logger; public class testlog { private final static Logger log = Logger.getLogger(testlog.class.getName()); public static void main(String[] args) { System.setProperty("java.util.logging.SimpleFormatter.format","[%1$tF %1$tT]:%4$s:(%2$s): %5$s%n"); log.info("logging test"); } }
执行:
$java testlog [2014-01-18 11:08:51]:INFO:(testlog main): logging test
testlog.groovy:
import java.util.logging.Logger; public class testlog { private final static Logger log = Logger.getLogger("testlog"); public static void main(String[] args) { System.setProperty("java.util.logging.SimpleFormatter.format",'[%1$tF %1$tT]:%4$s:(%2$s): %5$s%n'); log.info("logging test"); } }
执行:
$groovy testlog [2014-01-18 11:11:23]:INFO:(java_util_logging_Logger$info call): logging test
CallSite
.上面提到的Groovy代码将编译为以下格式的字节码:
import groovy.lang.GroovyObject; import groovy.lang.MetaClass; import java.util.logging.Logger; import org.codehaus.groovy.runtime.ScriptBytecodeAdapter; import org.codehaus.groovy.runtime.callsite.CallSite; public class testlog implements GroovyObject { private static final Logger log; static { __$swapInit();long l1 = 0L;__timestamp__239_neverHappen1390064566496 = l1; long l2 = 1390064566495L;__timestamp = l2; Object localObject = $getCallSiteArray() [2].call(Logger.class,"testlog");log = (Logger)ScriptBytecodeAdapter.castToType(localObject,Logger.class); } public static void main(String... args) { CallSite[] arrayOfCallSite = $getCallSiteArray();arrayOfCallSite[0].call(System.class,"java.util.logging.SimpleFormatter.format","[%1$tF %1$tT]:%4$s:(%2$s): %5$s%n"); arrayOfCallSite[1].call(log,"logging test"); } public testlog() { testlog this; CallSite[] arrayOfCallSite = $getCallSiteArray(); MetaClass localMetaClass = $getStaticMetaClass(); this.MetaClass = localMetaClass; } }
因此,它指的是格式化程序引用时的Log类.要解决此问题,您可以在类级别使用CompileStatic
注释,它将源代码转换为普通Java约定中的字节码.
以下是脚本的外观(注意: – 类名是CamelCasE):
import java.util.logging.Logger import groovy.transform.CompileStatic @CompileStatic public class Testlog { private final static Logger log = Logger.getLogger("testlog") public static void main(String[] args) { System.setProperty("java.util.logging.SimpleFormatter.format",'[%1$tF %1$tT]:%4$s:(%2$s): %5$s%n') log.info("logging test") } }
以上是大佬教程为你收集整理的如何在groovy中为类/方法名配置java.util.logging?全部内容,希望文章能够帮你解决如何在groovy中为类/方法名配置java.util.logging?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。