diff --git a/scripts/prime_vscode_compile_db.py b/scripts/prime_vscode_compile_db.py
new file mode 100644
index 0000000..02ae98c
--- /dev/null
+++ b/scripts/prime_vscode_compile_db.py
@@ -0,0 +1,28 @@
+import json
+import shlex
+import os
+import sys
+
+SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__))
+
+VS_CODE_FILE = os.path.join(SCRIPT_DIR, "../.vscode/c_cpp_properties.json")
+
+def main():
+    """ Main function"""
+    if os.path.exists(VS_CODE_FILE):
+        unique_includes = list(set(sys.argv[1:]))
+
+        print("Adding {} includes to c_cpp_properties.json".format(len(unique_includes)))
+        with open(VS_CODE_FILE) as vscodefile:
+            vscode_data = json.load(vscodefile)
+
+        for config in vscode_data["configurations"]:
+            if config["name"] in "Linux":
+                config["includePath"] = unique_includes
+
+
+        with open(VS_CODE_FILE, 'w') as vscodefile:
+            json.dump(vscode_data, vscodefile, sort_keys=True, indent=4)
+
+if __name__ == "__main__":
+    main()
diff --git a/src/example.cpp b/src/example.cpp
index ed893e6..c75ad61 100644
--- a/src/example.cpp
+++ b/src/example.cpp
@@ -66,8 +66,7 @@
    auto handle= worker->addDefaultLogger(argv[0], "/tmp/");
    g3::initializeLogging(worker.get());
    auto log_file_name = handle->call(&g3::FileSink::fileName);
-   auto stdout_handler = std::make_unique<crow::ColorCoutSink>();
-   auto sink_handle = worker->addSink(stdout_handler,
+   auto sink_handle = worker->addSink(std::make_unique<crow::ColorCoutSink>(),
                                      &crow::ColorCoutSink::ReceiveLogMessage);
 
    LOG(DEBUG) << "Logging to " << log_file_name.get() << "\n";
