 
 @discardableResult
 public func ftl(_ message: String,
-                inFile file: String = #file, atLine line: Int = #line, fromFunction f: String = #function) -> PearlLogger {
+                inFile file: String = #file, atLine line: Int = #line, fromFunction f: String = #function) -> PearlLogger? {
     return ftl( format: "%@", message, inFile: file, atLine: line, fromFunction: f );
 }
 
 @discardableResult
 public func ftl(format: String, _ args: Any?...,
-                inFile file: String = #file, atLine line: Int = #line, fromFunction f: String = #function) -> PearlLogger {
+                inFile file: String = #file, atLine line: Int = #line, fromFunction f: String = #function) -> PearlLogger? {
+        if PearlLogger.get().minimumLevel.rawValue > PearlLogLevel.fatal.rawValue {
+        return nil;
+    }
+
     return withAnyVaList( args: args ) {
         PearlLogger.get().inFile( NSURL( fileURLWithPath: file ).lastPathComponent, atLine: line, fromFunction: f,
                                   with: PearlLogLevel.fatal, format: format, args: $0 )


@discardableResult
public func wrn(_ message: String,
                inFile file: String = #file, atLine line: Int = #line, fromFunction f: String = #function) -> PearlLogger {
    return wrn( format: "%@", message, inFile: file, atLine: line, fromFunction: f );
}

@discardableResult
public func wrn(format: String, _ args: Any?...,
                inFile file: String = #file, atLine line: Int = #line, fromFunction f: String = #function) -> PearlLogger {
    return withAnyVaList( args: args ) {
        PearlLogger.get().inFile( NSURL( fileURLWithPath: file ).lastPathComponent, atLine: line, fromFunction: f,
                                  with: PearlLogLevel.warn, format: format, args: $0 )


@discardableResult
public func trc(_ message: String,
                inFile file: String = #file, atLine line: Int = #line, fromFunction f: String = #function) -> PearlLogger? {
    return trc( format: "%@", message, inFile: file, atLine: line, fromFunction: f );
}

@discardableResult
public func trc(format: String, _ args: Any?...,
                inFile file: String = #file, atLine line: Int = #line, fromFunction f: String = #function) -> PearlLogger? {
    if PearlLogger.get().minimumLevel.rawValue > PearlLogLevel.trace.rawValue {
        return nil;
    }

    return withAnyVaList( args: args ) {
        PearlLogger.get().inFile( NSURL( fileURLWithPath: file ).lastPathComponent, atLine: line, fromFunction: f,
                                  with: PearlLogLevel.trace, format: format, args: $0 )
