From e37caf06b189d84a92f970510dfc87c7e8c00c33 Mon Sep 17 00:00:00 2001 From: Volker Berlin Date: Fri, 19 Jul 2019 22:29:34 +0200 Subject: [PATCH] add logging --- .../jwebassembly/JWebAssembly.java | 26 +++++++++++++++++++ .../jwebassembly/module/ModuleGenerator.java | 4 +++ .../jwebassembly/module/TypeManager.java | 2 ++ 3 files changed, 32 insertions(+) diff --git a/src/de/inetsoftware/jwebassembly/JWebAssembly.java b/src/de/inetsoftware/jwebassembly/JWebAssembly.java index 48adba3..ec03e06 100644 --- a/src/de/inetsoftware/jwebassembly/JWebAssembly.java +++ b/src/de/inetsoftware/jwebassembly/JWebAssembly.java @@ -25,6 +25,12 @@ import java.net.URL; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.logging.ConsoleHandler; +import java.util.logging.Formatter; +import java.util.logging.Level; +import java.util.logging.LogRecord; +import java.util.logging.Logger; +import java.util.logging.StreamHandler; import javax.annotation.Nonnull; @@ -73,6 +79,26 @@ public class JWebAssembly { */ public static final String REPLACE_ANNOTATION = "de.inetsoftware.jwebassembly.api.annotation.Replace"; + /** + * The logger instance + */ + public static final Logger LOGGER = Logger.getAnonymousLogger( null ); + static { + LOGGER.setUseParentHandlers( false ); + ConsoleHandler handler = new ConsoleHandler() {{ + setOutputStream(System.out); + }}; + handler.setFormatter( new Formatter() { + @Override + public String format( LogRecord record ) { + return record.getMessage() + '\n'; + } + }); + handler.setLevel( Level.ALL ); + LOGGER.addHandler( handler ); + //LOGGER.setLevel( Level.FINE ); + } + /** * Create a instance. */ diff --git a/src/de/inetsoftware/jwebassembly/module/ModuleGenerator.java b/src/de/inetsoftware/jwebassembly/module/ModuleGenerator.java index 86d3661..007347f 100644 --- a/src/de/inetsoftware/jwebassembly/module/ModuleGenerator.java +++ b/src/de/inetsoftware/jwebassembly/module/ModuleGenerator.java @@ -162,14 +162,17 @@ public class ModuleGenerator { ClassFile classFile = ClassFile.get( next.className, libraries ); if( classFile == null ) { if( next instanceof SyntheticFunctionName ) { + JWebAssembly.LOGGER.info( '\t' + next.methodName + next.signature ); scanMethod( ((SyntheticFunctionName)next).getCodeBuilder( watParser ) ); functions.markAsScanned( next ); } } else { + JWebAssembly.LOGGER.fine( "scan class: " + next.className ); iterateMethods( classFile, method -> { try { FunctionName name = new FunctionName( method ); if( functions.needToScan( name ) ) { + JWebAssembly.LOGGER.fine( '\t' + name.methodName + name.signature ); scanMethod( createInstructions( functions.replace( name, method ) ) ); functions.markAsScanned( name ); } @@ -226,6 +229,7 @@ public class ModuleGenerator { writeMethodSignature( name, functions.isStatic( name ), null ); } + JWebAssembly.LOGGER.fine( "scan finsih" ); types.prepareFinish( writer, functions, libraries ); prepareFunctions(); // prepare of types can add some override methods as needed functions.prepareFinish(); diff --git a/src/de/inetsoftware/jwebassembly/module/TypeManager.java b/src/de/inetsoftware/jwebassembly/module/TypeManager.java index f04dcd2..03e07c2 100644 --- a/src/de/inetsoftware/jwebassembly/module/TypeManager.java +++ b/src/de/inetsoftware/jwebassembly/module/TypeManager.java @@ -30,6 +30,7 @@ import de.inetsoftware.classparser.ClassFile; import de.inetsoftware.classparser.ConstantClass; import de.inetsoftware.classparser.FieldInfo; import de.inetsoftware.classparser.MethodInfo; +import de.inetsoftware.jwebassembly.JWebAssembly; import de.inetsoftware.jwebassembly.WasmException; import de.inetsoftware.jwebassembly.wasm.AnyType; import de.inetsoftware.jwebassembly.wasm.NamedStorageType; @@ -101,6 +102,7 @@ public class TypeManager { public StructType valueOf( String name ) { StructType type = map.get( name ); if( type == null ) { + JWebAssembly.LOGGER.fine( "\t\ttype: " + name ); type = new StructType( name ); map.put( name, type ); }