         XCTAssert(numberOfTimes == 1, "Fail: Didn't execute the closure exactly once")
     }
 
-    func testExecDoesntExecute() {
-        let log: XCGLogger = XCGLogger()
-        log.identifier = "com.cerebralgardens.xcglogger.testExecDoesntExecute"
+    /// Test that closures for a log aren't executed if they aren't needed
+    func test_00090_ExecDoesntExecute() {
+        let log: XCGLogger = XCGLogger(identifier: functionIdentifier())
         log.outputLogLevel = .Error
 
         var numberOfTimes: Int = 0

    //        }
    //    }

    func testDefaultInstance() {
        // Test that if we request the default instance multiple times, we always get the same instance
        let defaultInstance1: XCGLogger = XCGLogger.defaultInstance()
        defaultInstance1.identifier = XCGLogger.Constants.defaultInstanceIdentifier

        let defaultInstance2: XCGLogger = XCGLogger.defaultInstance()
        defaultInstance2.identifier = XCGLogger.Constants.defaultInstanceIdentifier + ".second" // this should also change defaultInstance1.identifier

        XCTAssert(defaultInstance1.identifier == defaultInstance2.identifier, "Fail: defaultInstance() is not returning a common instance")
    }

    func testDistinctInstances() {
        // Test that if we request the multiple instances, we get different instances
        let instance1: XCGLogger = XCGLogger()
        instance1.identifier = "instance1"


import XCTest
@testable import XCGLogger

/// Tests
class XCGLoggerTests: XCTestCase {
    /// This file's filename for use in testing expected log messages
    let filename = { return (#file as NSString).lastPathComponent }()

    /// Calculate a base identifier to use for the giving function name.
    ///
    /// - Parameters:
    ///     - functionName: Normally omitted **Default:** *#function*.
    ///
    /// - Returns:  A string to use as the base identifier for objects in the test
    ///
    func functionIdentifier(functionName: StaticString = #function) -> String {
        return "com.cerebralgardens.xcglogger." + String(functionName)
    }

    /// Set up prior to each test
    override func setUp() {
        super.setUp()
        // Put setup code here. This method is called before the invocation of each test method in the class.
    }

    /// Tear down after each test
    override func tearDown() {
        // Put teardown code here. This method is called after the invocation of each test method in the class.
        super.tearDown()
