diff --git a/pom.xml b/pom.xml index c6f4845..267c6af 100644 --- a/pom.xml +++ b/pom.xml @@ -112,5 +112,5 @@ kettle-debug-plugin - 1.5.0-SNAPSHOT + 1.6.0-SNAPSHOT diff --git a/src/main/java/org/kettle/util/DebugLevelUtil.java b/src/main/java/org/kettle/util/DebugLevelUtil.java index a2132f7..a7f1666 100644 --- a/src/main/java/org/kettle/util/DebugLevelUtil.java +++ b/src/main/java/org/kettle/util/DebugLevelUtil.java @@ -12,6 +12,7 @@ import java.io.UnsupportedEncodingException; import java.util.Base64; import java.util.Map; +import java.util.concurrent.TimeUnit; public class DebugLevelUtil { @@ -95,4 +96,27 @@ public static JobEntryDebugLevel getJobEntryDebugLevel( Map debu return debugLevel; } + + public static String getDurationHMS(double seconds) { + int day = (int) TimeUnit.SECONDS.toDays((long)seconds); + long hours = TimeUnit.SECONDS.toHours((long)seconds) - (day *24); + long minute = TimeUnit.SECONDS.toMinutes((long)seconds) - (TimeUnit.SECONDS.toHours((long)seconds)* 60); + long second = TimeUnit.SECONDS.toSeconds((long)seconds) - (TimeUnit.SECONDS.toMinutes((long)seconds) *60); + long ms = (long)((seconds - ((long)seconds))*1000); + + StringBuilder hms = new StringBuilder(); + if (day>0) { + hms.append( day + "d " ); + } + if (day>0 || hours>0) { + hms.append(hours + "h "); + } + if (day>0 || hours>0 || minute>0) { + hms.append(String.format( "%2d", minute ) + "' "); + } + hms.append(String.format( "%2d", second ) + "."); + hms.append(String.format("%03d", ms)+"\""); + + return hms.toString(); + } } diff --git a/src/main/java/org/kettle/xp/LogJobExecutionTimeExtensionPoint.java b/src/main/java/org/kettle/xp/LogJobExecutionTimeExtensionPoint.java index df42f98..c0d6d93 100644 --- a/src/main/java/org/kettle/xp/LogJobExecutionTimeExtensionPoint.java +++ b/src/main/java/org/kettle/xp/LogJobExecutionTimeExtensionPoint.java @@ -1,5 +1,6 @@ package org.kettle.xp; +import org.kettle.util.DebugLevelUtil; import org.kettle.util.Defaults; import org.pentaho.di.core.exception.KettleException; import org.pentaho.di.core.extension.ExtensionPoint; @@ -42,23 +43,9 @@ public class LogJobExecutionTimeExtensionPoint implements ExtensionPointInterfac job.addJobListener( new JobAdapter() { @Override public void jobFinished( Job job ) throws KettleException { long endTime = System.currentTimeMillis(); - double seconds = ((double)endTime - (double)startTime) / 1000; - int day = (int)TimeUnit.SECONDS.toDays((long)seconds); - long hours = TimeUnit.SECONDS.toHours((long)seconds) - (day *24); - long minute = TimeUnit.SECONDS.toMinutes((long)seconds) - (TimeUnit.SECONDS.toHours((long)seconds)* 60); - long second = TimeUnit.SECONDS.toSeconds((long)seconds) - (TimeUnit.SECONDS.toMinutes((long)seconds) *60); - long ms = (long)((seconds - ((long)seconds))*1000); - - + log.logBasic("Job duration : "+ seconds+" seconds [ "+ DebugLevelUtil.getDurationHMS( seconds ) +" ]"); - log.logBasic("Job duration : "+ - seconds+" seconds [ "+ - day+"d "+ - hours+"h "+ - String.format("%02d", minute)+"' "+ - String.format("%02d", second)+"."+ - String.format("%03d", ms)+"\"]"); } } ); } diff --git a/src/main/java/org/kettle/xp/LogTransExecutionTimeExtensionPoint.java b/src/main/java/org/kettle/xp/LogTransExecutionTimeExtensionPoint.java index a8e737c..759fb50 100644 --- a/src/main/java/org/kettle/xp/LogTransExecutionTimeExtensionPoint.java +++ b/src/main/java/org/kettle/xp/LogTransExecutionTimeExtensionPoint.java @@ -1,5 +1,6 @@ package org.kettle.xp; +import org.kettle.util.DebugLevelUtil; import org.kettle.util.Defaults; import org.pentaho.di.core.exception.KettleException; import org.pentaho.di.core.extension.ExtensionPoint; @@ -45,21 +46,8 @@ public class LogTransExecutionTimeExtensionPoint implements ExtensionPointInterf trans.addTransListener( new TransAdapter() { @Override public void transFinished( Trans trans ) throws KettleException { long endTime = System.currentTimeMillis(); - double seconds = ((double)endTime - (double)startTime) / 1000; - int day = (int)TimeUnit.SECONDS.toDays((long)seconds); - long hours = TimeUnit.SECONDS.toHours((long)seconds) - (day *24); - long minute = TimeUnit.SECONDS.toMinutes((long)seconds) - (TimeUnit.SECONDS.toHours((long)seconds)* 60); - long second = TimeUnit.SECONDS.toSeconds((long)seconds) - (TimeUnit.SECONDS.toMinutes((long)seconds) *60); - long ms = (long)((seconds - ((long)seconds))*1000); - - log.logBasic("Transformation duration : "+ - seconds+" seconds [ "+ - day+"d "+ - hours+"h "+ - String.format("%02d", minute)+"' "+ - String.format("%02d", second)+"."+ - String.format("%03d", ms)+"\"]"); + log.logBasic("Transformation duration : "+ seconds+" seconds [ "+ DebugLevelUtil.getDurationHMS( seconds ) +" ]"); } } );