| 
					
				 | 
			
			
				@@ -31,6 +31,11 @@ const ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	FATAL = 5 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// Stringer interface 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+type Stringer interface { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	LogString() string 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // Init logger 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 func Init(plevel int) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	level = plevel 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -45,10 +50,12 @@ func dump(a ...interface{}) []interface{} { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	for ai, av := range a { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if avf, ok := av.(func() string); ok { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			a[ai] = avf() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} else if avf, ok := av.(fmt.Stringer); ok { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			a[ai] = avf.String() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} else if avf, ok := av.(Stringer); ok { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			a[ai] = avf.LogString() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} else if avf, ok := av.(fmt.GoStringer); ok { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			a[ai] = avf.GoString() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} else if avf, ok := av.(fmt.Stringer); ok { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			a[ai] = avf.String() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	return a 
			 |