Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 31 additions & 7 deletions Log.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -391,7 +391,7 @@
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 0720;
LastUpgradeCheck = 0820;
LastUpgradeCheck = 0930;
ORGANIZATIONNAME = delba;
TargetAttributes = {
6D7C68021C89FBAB005782C9 = {
Expand All @@ -411,11 +411,11 @@
};
6DACCA391C89F89D001B63D9 = {
CreatedOnToolsVersion = 7.2;
LastSwiftMigration = 0800;
LastSwiftMigration = 0930;
};
6DACCA421C89F89E001B63D9 = {
CreatedOnToolsVersion = 7.2;
LastSwiftMigration = 0800;
LastSwiftMigration = 0930;
};
};
};
Expand Down Expand Up @@ -604,14 +604,22 @@
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
Expand Down Expand Up @@ -655,14 +663,22 @@
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
Expand Down Expand Up @@ -793,6 +809,7 @@
PRODUCT_BUNDLE_IDENTIFIER = "io.delba.Log-tvOSTests";
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = appletvos;
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
TVOS_DEPLOYMENT_TARGET = 9.1;
};
name = Debug;
Expand All @@ -806,6 +823,7 @@
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = appletvos;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
TVOS_DEPLOYMENT_TARGET = 9.1;
};
name = Release;
Expand Down Expand Up @@ -871,6 +889,7 @@
PRODUCT_BUNDLE_IDENTIFIER = "io.delba.Log-OSXTests";
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = macosx;
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
};
name = Debug;
};
Expand All @@ -887,6 +906,7 @@
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = macosx;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
};
name = Release;
};
Expand All @@ -907,7 +927,8 @@
PRODUCT_BUNDLE_IDENTIFIER = io.delba.Log;
PRODUCT_NAME = Log;
SKIP_INSTALL = YES;
SWIFT_VERSION = 3.0;
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
SWIFT_VERSION = 4.0;
};
name = Debug;
};
Expand All @@ -929,7 +950,8 @@
PRODUCT_NAME = Log;
SKIP_INSTALL = YES;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
SWIFT_VERSION = 3.0;
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
SWIFT_VERSION = 4.0;
};
name = Release;
};
Expand All @@ -941,7 +963,8 @@
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = "io.delba.Log-iOSTests";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 3.0;
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
SWIFT_VERSION = 4.0;
};
name = Debug;
};
Expand All @@ -954,7 +977,8 @@
PRODUCT_BUNDLE_IDENTIFIER = "io.delba.Log-iOSTests";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
SWIFT_VERSION = 3.0;
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
SWIFT_VERSION = 4.0;
};
name = Release;
};
Expand Down
2 changes: 1 addition & 1 deletion Log.xcodeproj/xcshareddata/xcschemes/Log OSX.xcscheme
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0820"
LastUpgradeVersion = "0930"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
Expand Down
2 changes: 1 addition & 1 deletion Log.xcodeproj/xcshareddata/xcschemes/Log iOS.xcscheme
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0820"
LastUpgradeVersion = "0930"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
Expand Down
2 changes: 1 addition & 1 deletion Log.xcodeproj/xcshareddata/xcschemes/Log tvOS.xcscheme
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0820"
LastUpgradeVersion = "0930"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
Expand Down
2 changes: 1 addition & 1 deletion Log.xcodeproj/xcshareddata/xcschemes/Log watchOS.xcscheme
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0820"
LastUpgradeVersion = "0930"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
Expand Down
78 changes: 43 additions & 35 deletions Source/Extensions/Themes.swift
Original file line number Diff line number Diff line change
Expand Up @@ -24,58 +24,66 @@

extension Themes {
public static let `default` = Theme(
trace: "#C8C8C8",
debug: "#0000FF",
info: "#00FF00",
warning: "#FFFB00",
error: "#FF0000"
trace: Theme.Style(color: "#C8C8C8"),
debug: Theme.Style(color: "#0000FF"),
info: Theme.Style(color: "#00FF00"),
warning: Theme.Style(color: "#FFFB00"),
error: Theme.Style(color: "#FF0000")
)

public static let dusk = Theme(
trace: "#FFFFFF",
debug: "#526EDA",
info: "#93C96A",
warning: "#D28F5A",
error: "#E44347"
trace: Theme.Style(color: "#FFFFFF"),
debug: Theme.Style(color: "#526EDA"),
info: Theme.Style(color: "#93C96A"),
warning: Theme.Style(color: "#D28F5A"),
error: Theme.Style(color: "#E44347")
)

public static let midnight = Theme(
trace: "#FFFFFF",
debug: "#527EFF",
info: "#08FA95",
warning: "#EB905A",
error: "#FF4647"
trace: Theme.Style(color: "#FFFFFF"),
debug: Theme.Style(color: "#527EFF"),
info: Theme.Style(color: "#08FA95"),
warning: Theme.Style(color: "#EB905A"),
error: Theme.Style(color: "#FF4647")
)

public static let tomorrow = Theme(
trace: "#4D4D4C",
debug: "#4271AE",
info: "#718C00",
warning: "#EAB700",
error: "#C82829"
trace: Theme.Style(color: "#4D4D4C"),
debug: Theme.Style(color: "#4271AE"),
info: Theme.Style(color: "#718C00"),
warning: Theme.Style(color: "#EAB700"),
error: Theme.Style(color: "#C82829")
)

public static let tomorrowNight = Theme(
trace: "#C5C8C6",
debug: "#81A2BE",
info: "#B5BD68",
warning: "#F0C674",
error: "#CC6666"
trace: Theme.Style(color: "#C5C8C6"),
debug: Theme.Style(color: "#81A2BE"),
info: Theme.Style(color: "#B5BD68"),
warning: Theme.Style(color: "#F0C674"),
error: Theme.Style(color: "#CC6666")
)

public static let tomorrowNightEighties = Theme(
trace: "#CCCCCC",
debug: "#6699CC",
info: "#99CC99",
warning: "#FFCC66",
error: "#F2777A"
trace: Theme.Style(color: "#CCCCCC"),
debug: Theme.Style(color: "#6699CC"),
info: Theme.Style(color: "#99CC99"),
warning: Theme.Style(color: "#FFCC66"),
error: Theme.Style(color: "#F2777A")
)

public static let tomorrowNightBright = Theme(
trace: "#EAEAEA",
debug: "#7AA6DA",
info: "#B9CA4A",
warning: "#E7C547",
error: "#D54E53"
trace: Theme.Style(color: "#EAEAEA"),
debug: Theme.Style(color: "#7AA6DA"),
info: Theme.Style(color: "#B9CA4A"),
warning: Theme.Style(color: "#E7C547"),
error: Theme.Style(color: "#D54E53")
)

public static let emojiHearts = Theme(
trace: Theme.Style(emoji: "💚"),
debug: Theme.Style(emoji: "🖤"),
info: Theme.Style(emoji: "💙"),
warning: Theme.Style(emoji: "💛"),
error: Theme.Style(emoji: "❤️")
)
}
26 changes: 18 additions & 8 deletions Source/Formatter.swift
Original file line number Diff line number Diff line change
Expand Up @@ -222,11 +222,18 @@ private extension Formatter {
*/
func format(level: Level) -> String {
let text = level.description

if let color = logger.theme?.colors[level] {
return text.withColor(color)

if let style = logger.theme.style(for: level) {

var string = style.emoji + text

if let color = style.color {
string = string.withColor(color)
}

return string
}

return text
}

Expand All @@ -239,11 +246,14 @@ private extension Formatter {
*/
func format(description: String?) -> String {
var text = "MEASURE"

if let color = logger.theme?.colors[.debug] {
text = text.withColor(color)

if let style = logger.theme.style(for: .debug) {

text = style.emoji + text
if let color = style.color {
text = text.withColor(color)
}
}

if let description = description {
text = "\(text) \(description)"
}
Expand Down
6 changes: 3 additions & 3 deletions Source/Logger.swift
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ open class Logger {
}

/// The logger theme.
public var theme: Theme?
public var theme: Theme

/// The minimum level of severity.
public var minLevel: Level
Expand All @@ -64,7 +64,7 @@ open class Logger {

/// The logger colors
public var colors: String {
return theme?.description ?? ""
return theme.description
}

/// The queue used for logging.
Expand All @@ -79,7 +79,7 @@ open class Logger {

- returns: A newly created logger.
*/
public init(formatter: Formatter = .default, theme: Theme? = nil, minLevel: Level = .trace) {
public init(formatter: Formatter = .default, theme: Theme = .emojiHearts, minLevel: Level = .trace) {
self.formatter = formatter
self.theme = theme
self.minLevel = minLevel
Expand Down
Loading