diff --git a/apidocs/allclasses-frame.html b/apidocs/allclasses-frame.html
index b056654..a1ffdc9 100644
--- a/apidocs/allclasses-frame.html
+++ b/apidocs/allclasses-frame.html
@@ -2,9 +2,9 @@
-
+
-All Classes (SLF4Bukkit 0.1.3 API)
+All Classes (SLF4Bukkit 0.1.4 API)
diff --git a/apidocs/allclasses-noframe.html b/apidocs/allclasses-noframe.html
index 94ffd5a..e70de53 100644
--- a/apidocs/allclasses-noframe.html
+++ b/apidocs/allclasses-noframe.html
@@ -2,9 +2,9 @@
-
+
-All Classes (SLF4Bukkit 0.1.3 API)
+All Classes (SLF4Bukkit 0.1.4 API)
diff --git a/apidocs/constant-values.html b/apidocs/constant-values.html
index 46bdab5..51e2b04 100644
--- a/apidocs/constant-values.html
+++ b/apidocs/constant-values.html
@@ -2,16 +2,16 @@
-
+
-Constant Field Values (SLF4Bukkit 0.1.3 API)
+Constant Field Values (SLF4Bukkit 0.1.4 API)
diff --git a/apidocs/deprecated-list.html b/apidocs/deprecated-list.html
index 8a44782..26b3f75 100644
--- a/apidocs/deprecated-list.html
+++ b/apidocs/deprecated-list.html
@@ -2,16 +2,16 @@
-
+
-Deprecated List (SLF4Bukkit 0.1.3 API)
+Deprecated List (SLF4Bukkit 0.1.4 API)
diff --git a/apidocs/help-doc.html b/apidocs/help-doc.html
index e4afae3..c363926 100644
--- a/apidocs/help-doc.html
+++ b/apidocs/help-doc.html
@@ -2,16 +2,16 @@
-
+
-API Help (SLF4Bukkit 0.1.3 API)
+API Help (SLF4Bukkit 0.1.4 API)
diff --git a/apidocs/index-all.html b/apidocs/index-all.html
index 95422b3..f82bb7f 100644
--- a/apidocs/index-all.html
+++ b/apidocs/index-all.html
@@ -2,16 +2,16 @@
-
+
-Index (SLF4Bukkit 0.1.3 API)
+Index (SLF4Bukkit 0.1.4 API)
diff --git a/apidocs/index.html b/apidocs/index.html
index ffb1998..4048703 100644
--- a/apidocs/index.html
+++ b/apidocs/index.html
@@ -2,9 +2,9 @@
-
+
-SLF4Bukkit 0.1.3 API
+SLF4Bukkit 0.1.4 API
diff --git a/apidocs/info/ronjenkins/slf4bukkit/ColorMarker.html b/apidocs/info/ronjenkins/slf4bukkit/ColorMarker.html
index ab8a19e..149add3 100644
--- a/apidocs/info/ronjenkins/slf4bukkit/ColorMarker.html
+++ b/apidocs/info/ronjenkins/slf4bukkit/ColorMarker.html
@@ -2,16 +2,16 @@
-
+
-ColorMarker (SLF4Bukkit 0.1.3 API)
+ColorMarker (SLF4Bukkit 0.1.4 API)
diff --git a/apidocs/info/ronjenkins/slf4bukkit/ColorString.html b/apidocs/info/ronjenkins/slf4bukkit/ColorString.html
index cbcaf22..265fa31 100644
--- a/apidocs/info/ronjenkins/slf4bukkit/ColorString.html
+++ b/apidocs/info/ronjenkins/slf4bukkit/ColorString.html
@@ -2,16 +2,16 @@
-
+
-ColorString (SLF4Bukkit 0.1.3 API)
+ColorString (SLF4Bukkit 0.1.4 API)
diff --git a/apidocs/info/ronjenkins/slf4bukkit/class-use/ColorMapper.html b/apidocs/info/ronjenkins/slf4bukkit/class-use/ColorMapper.html
index 7c343ae..c2006f2 100644
--- a/apidocs/info/ronjenkins/slf4bukkit/class-use/ColorMapper.html
+++ b/apidocs/info/ronjenkins/slf4bukkit/class-use/ColorMapper.html
@@ -2,16 +2,16 @@
-
+
-Uses of Class info.ronjenkins.slf4bukkit.ColorMapper (SLF4Bukkit 0.1.3 API)
+Uses of Class info.ronjenkins.slf4bukkit.ColorMapper (SLF4Bukkit 0.1.4 API)
diff --git a/apidocs/info/ronjenkins/slf4bukkit/class-use/ColorMarker.html b/apidocs/info/ronjenkins/slf4bukkit/class-use/ColorMarker.html
index b8dffa4..21c1107 100644
--- a/apidocs/info/ronjenkins/slf4bukkit/class-use/ColorMarker.html
+++ b/apidocs/info/ronjenkins/slf4bukkit/class-use/ColorMarker.html
@@ -2,16 +2,16 @@
-
+
-Uses of Class info.ronjenkins.slf4bukkit.ColorMarker (SLF4Bukkit 0.1.3 API)
+Uses of Class info.ronjenkins.slf4bukkit.ColorMarker (SLF4Bukkit 0.1.4 API)
diff --git a/apidocs/info/ronjenkins/slf4bukkit/class-use/ColorString.html b/apidocs/info/ronjenkins/slf4bukkit/class-use/ColorString.html
index 993c1c1..bc2c925 100644
--- a/apidocs/info/ronjenkins/slf4bukkit/class-use/ColorString.html
+++ b/apidocs/info/ronjenkins/slf4bukkit/class-use/ColorString.html
@@ -2,16 +2,16 @@
-
+
-Uses of Class info.ronjenkins.slf4bukkit.ColorString (SLF4Bukkit 0.1.3 API)
+Uses of Class info.ronjenkins.slf4bukkit.ColorString (SLF4Bukkit 0.1.4 API)
diff --git a/apidocs/info/ronjenkins/slf4bukkit/package-frame.html b/apidocs/info/ronjenkins/slf4bukkit/package-frame.html
index cbfdd11..e08f8fd 100644
--- a/apidocs/info/ronjenkins/slf4bukkit/package-frame.html
+++ b/apidocs/info/ronjenkins/slf4bukkit/package-frame.html
@@ -2,9 +2,9 @@
-
+
-info.ronjenkins.slf4bukkit (SLF4Bukkit 0.1.3 API)
+info.ronjenkins.slf4bukkit (SLF4Bukkit 0.1.4 API)
diff --git a/apidocs/info/ronjenkins/slf4bukkit/package-summary.html b/apidocs/info/ronjenkins/slf4bukkit/package-summary.html
index 5a2fd00..f89e37d 100644
--- a/apidocs/info/ronjenkins/slf4bukkit/package-summary.html
+++ b/apidocs/info/ronjenkins/slf4bukkit/package-summary.html
@@ -2,16 +2,16 @@
-
+
-info.ronjenkins.slf4bukkit (SLF4Bukkit 0.1.3 API)
+info.ronjenkins.slf4bukkit (SLF4Bukkit 0.1.4 API)
diff --git a/apidocs/info/ronjenkins/slf4bukkit/package-tree.html b/apidocs/info/ronjenkins/slf4bukkit/package-tree.html
index 5662eab..56845f9 100644
--- a/apidocs/info/ronjenkins/slf4bukkit/package-tree.html
+++ b/apidocs/info/ronjenkins/slf4bukkit/package-tree.html
@@ -2,16 +2,16 @@
-
+
-info.ronjenkins.slf4bukkit Class Hierarchy (SLF4Bukkit 0.1.3 API)
+info.ronjenkins.slf4bukkit Class Hierarchy (SLF4Bukkit 0.1.4 API)
diff --git a/apidocs/info/ronjenkins/slf4bukkit/package-use.html b/apidocs/info/ronjenkins/slf4bukkit/package-use.html
index 3e91483..b123df1 100644
--- a/apidocs/info/ronjenkins/slf4bukkit/package-use.html
+++ b/apidocs/info/ronjenkins/slf4bukkit/package-use.html
@@ -2,16 +2,16 @@
-
+
-Uses of Package info.ronjenkins.slf4bukkit (SLF4Bukkit 0.1.3 API)
+Uses of Package info.ronjenkins.slf4bukkit (SLF4Bukkit 0.1.4 API)
diff --git a/apidocs/org/slf4j/impl/BukkitLoggerAdapter.html b/apidocs/org/slf4j/impl/BukkitLoggerAdapter.html
index 3afb32a..78ebeb2 100644
--- a/apidocs/org/slf4j/impl/BukkitLoggerAdapter.html
+++ b/apidocs/org/slf4j/impl/BukkitLoggerAdapter.html
@@ -2,16 +2,16 @@
-
+
-BukkitLoggerAdapter (SLF4Bukkit 0.1.3 API)
+BukkitLoggerAdapter (SLF4Bukkit 0.1.4 API)
@@ -145,12 +145,13 @@ implements org.slf4j.Logger
the current thread name, wrapped in brackets. If unspecified or given any
other value, defaults to false.
- slf4j.format.LEVEL - Default format for all messages of this
- level. Possible values come are Bukkit's ColorMarker values. Both
- keys and values in this section are treated as case-insensitive. Invalid
+ slf4j.colors.LEVEL - Default color for all messages of this
+ level. Possible values come from SLF4Bukkit's ColorMarker values.
+ Both keys and values in this section are treated as case-insensitive. Invalid
values for either the key or value of an entry result in that entry being
- ignored. Default values are: error=RED, warn=YELLOW, others=RESET.
- ColorMarker s always override these config values.
+ ignored. Default values are: error=RED, warn=YELLOW, others=NONE. When used
+ programmatically via methods in this class, ColorMarker s always
+ override these config values.
slf4j.log.<em>a.b.c</em> - Logging detail level for an SLF4Bukkit
logger instance in this plugin named "a.b.c". Right-side value must be one of
diff --git a/apidocs/org/slf4j/impl/BukkitLoggerFactory.html b/apidocs/org/slf4j/impl/BukkitLoggerFactory.html
index 40fc907..1d09064 100644
--- a/apidocs/org/slf4j/impl/BukkitLoggerFactory.html
+++ b/apidocs/org/slf4j/impl/BukkitLoggerFactory.html
@@ -2,16 +2,16 @@
-
+
-BukkitLoggerFactory (SLF4Bukkit 0.1.3 API)
+BukkitLoggerFactory (SLF4Bukkit 0.1.4 API)
diff --git a/apidocs/org/slf4j/impl/StaticLoggerBinder.html b/apidocs/org/slf4j/impl/StaticLoggerBinder.html
index 957069f..4fd3b30 100644
--- a/apidocs/org/slf4j/impl/StaticLoggerBinder.html
+++ b/apidocs/org/slf4j/impl/StaticLoggerBinder.html
@@ -2,16 +2,16 @@
-
+
-StaticLoggerBinder (SLF4Bukkit 0.1.3 API)
+StaticLoggerBinder (SLF4Bukkit 0.1.4 API)
diff --git a/apidocs/org/slf4j/impl/StaticMDCBinder.html b/apidocs/org/slf4j/impl/StaticMDCBinder.html
index 912601e..c24ddbd 100644
--- a/apidocs/org/slf4j/impl/StaticMDCBinder.html
+++ b/apidocs/org/slf4j/impl/StaticMDCBinder.html
@@ -2,16 +2,16 @@
-
+
-StaticMDCBinder (SLF4Bukkit 0.1.3 API)
+StaticMDCBinder (SLF4Bukkit 0.1.4 API)
diff --git a/apidocs/org/slf4j/impl/StaticMarkerBinder.html b/apidocs/org/slf4j/impl/StaticMarkerBinder.html
index 04305e8..8f9760d 100644
--- a/apidocs/org/slf4j/impl/StaticMarkerBinder.html
+++ b/apidocs/org/slf4j/impl/StaticMarkerBinder.html
@@ -2,16 +2,16 @@
-
+
-StaticMarkerBinder (SLF4Bukkit 0.1.3 API)
+StaticMarkerBinder (SLF4Bukkit 0.1.4 API)
diff --git a/apidocs/org/slf4j/impl/class-use/BukkitLoggerAdapter.html b/apidocs/org/slf4j/impl/class-use/BukkitLoggerAdapter.html
index e38aa7b..178e700 100644
--- a/apidocs/org/slf4j/impl/class-use/BukkitLoggerAdapter.html
+++ b/apidocs/org/slf4j/impl/class-use/BukkitLoggerAdapter.html
@@ -2,16 +2,16 @@
-
+
-Uses of Class org.slf4j.impl.BukkitLoggerAdapter (SLF4Bukkit 0.1.3 API)
+Uses of Class org.slf4j.impl.BukkitLoggerAdapter (SLF4Bukkit 0.1.4 API)
diff --git a/apidocs/org/slf4j/impl/class-use/BukkitLoggerFactory.html b/apidocs/org/slf4j/impl/class-use/BukkitLoggerFactory.html
index a19a097..adb378c 100644
--- a/apidocs/org/slf4j/impl/class-use/BukkitLoggerFactory.html
+++ b/apidocs/org/slf4j/impl/class-use/BukkitLoggerFactory.html
@@ -2,16 +2,16 @@
-
+
-Uses of Class org.slf4j.impl.BukkitLoggerFactory (SLF4Bukkit 0.1.3 API)
+Uses of Class org.slf4j.impl.BukkitLoggerFactory (SLF4Bukkit 0.1.4 API)
diff --git a/apidocs/org/slf4j/impl/class-use/StaticLoggerBinder.html b/apidocs/org/slf4j/impl/class-use/StaticLoggerBinder.html
index e90f12c..a0f1f9a 100644
--- a/apidocs/org/slf4j/impl/class-use/StaticLoggerBinder.html
+++ b/apidocs/org/slf4j/impl/class-use/StaticLoggerBinder.html
@@ -2,16 +2,16 @@
-
+
-Uses of Class org.slf4j.impl.StaticLoggerBinder (SLF4Bukkit 0.1.3 API)
+Uses of Class org.slf4j.impl.StaticLoggerBinder (SLF4Bukkit 0.1.4 API)
diff --git a/apidocs/org/slf4j/impl/class-use/StaticMDCBinder.html b/apidocs/org/slf4j/impl/class-use/StaticMDCBinder.html
index 35ba72b..ff83a56 100644
--- a/apidocs/org/slf4j/impl/class-use/StaticMDCBinder.html
+++ b/apidocs/org/slf4j/impl/class-use/StaticMDCBinder.html
@@ -2,16 +2,16 @@
-
+
-Uses of Class org.slf4j.impl.StaticMDCBinder (SLF4Bukkit 0.1.3 API)
+Uses of Class org.slf4j.impl.StaticMDCBinder (SLF4Bukkit 0.1.4 API)
diff --git a/apidocs/org/slf4j/impl/class-use/StaticMarkerBinder.html b/apidocs/org/slf4j/impl/class-use/StaticMarkerBinder.html
index e173ded..72e67eb 100644
--- a/apidocs/org/slf4j/impl/class-use/StaticMarkerBinder.html
+++ b/apidocs/org/slf4j/impl/class-use/StaticMarkerBinder.html
@@ -2,16 +2,16 @@
-
+
-Uses of Class org.slf4j.impl.StaticMarkerBinder (SLF4Bukkit 0.1.3 API)
+Uses of Class org.slf4j.impl.StaticMarkerBinder (SLF4Bukkit 0.1.4 API)
diff --git a/apidocs/org/slf4j/impl/package-frame.html b/apidocs/org/slf4j/impl/package-frame.html
index deb0102..fed9be5 100644
--- a/apidocs/org/slf4j/impl/package-frame.html
+++ b/apidocs/org/slf4j/impl/package-frame.html
@@ -2,9 +2,9 @@
-
+
-org.slf4j.impl (SLF4Bukkit 0.1.3 API)
+org.slf4j.impl (SLF4Bukkit 0.1.4 API)
diff --git a/apidocs/org/slf4j/impl/package-summary.html b/apidocs/org/slf4j/impl/package-summary.html
index a3ab22a..db54491 100644
--- a/apidocs/org/slf4j/impl/package-summary.html
+++ b/apidocs/org/slf4j/impl/package-summary.html
@@ -2,16 +2,16 @@
-
+
-org.slf4j.impl (SLF4Bukkit 0.1.3 API)
+org.slf4j.impl (SLF4Bukkit 0.1.4 API)
diff --git a/apidocs/org/slf4j/impl/package-tree.html b/apidocs/org/slf4j/impl/package-tree.html
index 30c3d1b..2c46153 100644
--- a/apidocs/org/slf4j/impl/package-tree.html
+++ b/apidocs/org/slf4j/impl/package-tree.html
@@ -2,16 +2,16 @@
-
+
-org.slf4j.impl Class Hierarchy (SLF4Bukkit 0.1.3 API)
+org.slf4j.impl Class Hierarchy (SLF4Bukkit 0.1.4 API)
diff --git a/apidocs/org/slf4j/impl/package-use.html b/apidocs/org/slf4j/impl/package-use.html
index 2465bce..0a5938e 100644
--- a/apidocs/org/slf4j/impl/package-use.html
+++ b/apidocs/org/slf4j/impl/package-use.html
@@ -2,16 +2,16 @@
-
+
-Uses of Package org.slf4j.impl (SLF4Bukkit 0.1.3 API)
+Uses of Package org.slf4j.impl (SLF4Bukkit 0.1.4 API)
diff --git a/apidocs/overview-frame.html b/apidocs/overview-frame.html
index ac3a0ca..06424e6 100644
--- a/apidocs/overview-frame.html
+++ b/apidocs/overview-frame.html
@@ -2,9 +2,9 @@
-
+
-Overview List (SLF4Bukkit 0.1.3 API)
+Overview List (SLF4Bukkit 0.1.4 API)
diff --git a/apidocs/overview-summary.html b/apidocs/overview-summary.html
index 7f5b5ee..fa2e1d6 100644
--- a/apidocs/overview-summary.html
+++ b/apidocs/overview-summary.html
@@ -2,16 +2,16 @@
-
+
-Overview (SLF4Bukkit 0.1.3 API)
+Overview (SLF4Bukkit 0.1.4 API)
@@ -64,7 +64,7 @@
diff --git a/apidocs/overview-tree.html b/apidocs/overview-tree.html
index 625eaca..d349e08 100644
--- a/apidocs/overview-tree.html
+++ b/apidocs/overview-tree.html
@@ -2,16 +2,16 @@
-
+
-Class Hierarchy (SLF4Bukkit 0.1.3 API)
+Class Hierarchy (SLF4Bukkit 0.1.4 API)
diff --git a/dependencies.html b/dependencies.html
index 852e456..5d95366 100644
--- a/dependencies.html
+++ b/dependencies.html
@@ -125,7 +125,7 @@
Last Published: 2016-04-02
|
- Version: 0.1.3
+ Version: 0.1.4
@@ -364,7 +364,7 @@
Dependency Tree
-info.ronjenkins:slf4bukkit:jar:0.1.3
+
info.ronjenkins:slf4bukkit:jar:0.1.4
SLF4Bukkit
diff --git a/dependency-convergence.html b/dependency-convergence.html
index c3c2e2f..3859aae 100644
--- a/dependency-convergence.html
+++ b/dependency-convergence.html
@@ -125,7 +125,7 @@
Last Published: 2016-04-02
|
- Version: 0.1.3
+ Version: 0.1.4
diff --git a/devs.html b/devs.html
index 4af060a..a4c61d9 100644
--- a/devs.html
+++ b/devs.html
@@ -125,7 +125,7 @@
Last Published: 2016-04-02
|
- Version: 0.1.3
+ Version: 0.1.4
@@ -205,7 +205,7 @@
<dependency>
<groupId>info.ronjenkins</groupId>
<artifactId>slf4bukkit</artifactId>
- <version>0.1.3</version>
+ <version>0.1.4</version>
</dependency>
diff --git a/index.html b/index.html
index 18ff477..739cde2 100644
--- a/index.html
+++ b/index.html
@@ -125,7 +125,7 @@
Last Published: 2016-04-02
|
- Version: 0.1.3
+ Version: 0.1.4
diff --git a/license.html b/license.html
index bbf1910..c9b4095 100644
--- a/license.html
+++ b/license.html
@@ -125,7 +125,7 @@
Last Published: 2016-04-02
|
- Version: 0.1.3
+ Version: 0.1.4
diff --git a/plugins.html b/plugins.html
index 34610fd..9492823 100644
--- a/plugins.html
+++ b/plugins.html
@@ -125,7 +125,7 @@
Last Published: 2016-04-02
|
- Version: 0.1.3
+ Version: 0.1.4
diff --git a/project-info.html b/project-info.html
index f987f09..cf31fe6 100644
--- a/project-info.html
+++ b/project-info.html
@@ -125,7 +125,7 @@
Last Published: 2016-04-02
|
- Version: 0.1.3
+ Version: 0.1.4
diff --git a/project-reports.html b/project-reports.html
index acb7d2c..7a4b3bd 100644
--- a/project-reports.html
+++ b/project-reports.html
@@ -125,7 +125,7 @@
Last Published: 2016-04-02
|
- Version: 0.1.3
+ Version: 0.1.4
diff --git a/project-summary.html b/project-summary.html
index 1ccfb59..b19d4cf 100644
--- a/project-summary.html
+++ b/project-summary.html
@@ -125,7 +125,7 @@
Last Published: 2016-04-02
|
- Version: 0.1.3
+ Version: 0.1.4
@@ -268,7 +268,7 @@
slf4bukkit
Version
-0.1.3
+0.1.4
Type
jar
diff --git a/source-repository.html b/source-repository.html
index 4cc737f..d9d262b 100644
--- a/source-repository.html
+++ b/source-repository.html
@@ -125,7 +125,7 @@
Last Published: 2016-04-02
|
- Version: 0.1.3
+ Version: 0.1.4
@@ -244,11 +244,11 @@
Anonymous Access
The source can be checked out anonymously from Git with this command (See http://git-scm.com/docs/git-clone ):
-
$ git clone --branch 0.1.3 git://github.com/rjenkinsjr/slf4bukkit.git
+$ git clone --branch 0.1.4 git://github.com/rjenkinsjr/slf4bukkit.git
Developer Access
Only project developers can access the Git tree via this method (See http://git-scm.com/docs/git-clone ).
-
$ git clone --branch 0.1.3 git@github.com:rjenkinsjr/slf4bukkit.git
+$ git clone --branch 0.1.4 git@github.com:rjenkinsjr/slf4bukkit.git
Access from Behind a Firewall
Refer to the documentation of the SCM used for more information about access behind a firewall.
diff --git a/taglist.html b/taglist.html
index 6fd8494..7c485bd 100644
--- a/taglist.html
+++ b/taglist.html
@@ -125,7 +125,7 @@
Last Published: 2016-04-02
|
- Version: 0.1.3
+ Version: 0.1.4
diff --git a/xref/index.html b/xref/index.html
index 2c1c3d4..7a732a2 100644
--- a/xref/index.html
+++ b/xref/index.html
@@ -4,7 +4,7 @@
- SLF4Bukkit 0.1.3 Reference
+ SLF4Bukkit 0.1.4 Reference
diff --git a/xref/info/ronjenkins/slf4bukkit/package-frame.html b/xref/info/ronjenkins/slf4bukkit/package-frame.html
index 862dc59..ccd6c20 100644
--- a/xref/info/ronjenkins/slf4bukkit/package-frame.html
+++ b/xref/info/ronjenkins/slf4bukkit/package-frame.html
@@ -3,7 +3,7 @@
- SLF4Bukkit 0.1.3 Reference Package info.ronjenkins.slf4bukkit
+ SLF4Bukkit 0.1.4 Reference Package info.ronjenkins.slf4bukkit
diff --git a/xref/info/ronjenkins/slf4bukkit/package-summary.html b/xref/info/ronjenkins/slf4bukkit/package-summary.html
index b4b267e..ffb9b06 100644
--- a/xref/info/ronjenkins/slf4bukkit/package-summary.html
+++ b/xref/info/ronjenkins/slf4bukkit/package-summary.html
@@ -3,7 +3,7 @@
- SLF4Bukkit 0.1.3 Reference Package info.ronjenkins.slf4bukkit
+ SLF4Bukkit 0.1.4 Reference Package info.ronjenkins.slf4bukkit
diff --git a/xref/org/slf4j/impl/BukkitLoggerAdapter.html b/xref/org/slf4j/impl/BukkitLoggerAdapter.html
index 27b1387..b1a4481 100644
--- a/xref/org/slf4j/impl/BukkitLoggerAdapter.html
+++ b/xref/org/slf4j/impl/BukkitLoggerAdapter.html
@@ -119,940 +119,941 @@
111
112
113
-114
-115
-116
+114
+115
+116
117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146
-147
-148
-149
-150
-151
-152
-153
-154
-155
-156
-157
-158
-159
-160
-161
-162
-163
-164
-165
-166
-167
-168
-169
-170
-171
-172
-173
-174
-175
-176
-177
-178
-179
-180
-181
-182
-183
-184
-185
-186
-187
-188
-189
-190 public final class BukkitLoggerAdapter implements Logger {
-191
-192
-193 private static transient Plugin BUKKIT_PLUGIN;
-194 private static transient String BUKKIT_PLUGIN_NAME;
-195
-196 private static final String CONFIG_FALLBACK_DEFAULT_LOG_LEVEL = "info" ;
-197 private static final Map<Level, ColorMarker> CONFIG_FALLBACK_LEVEL_COLORS = BukkitLoggerAdapter.fallbackLevelColors();
-198 private static final boolean CONFIG_FALLBACK_SHOW_HEADER = false;
-199 private static final boolean CONFIG_FALLBACK_SHOW_LOG_NAME = false;
-200 private static final boolean CONFIG_FALLBACK_SHOW_SHORT_LOG_NAME = true ;
-201 private static final boolean CONFIG_FALLBACK_SHOW_THREAD_NAME = false;
-202 private static final String CONFIG_KEY_DEFAULT_LOG_LEVEL = "slf4j.defaultLogLevel" ;
-203 private static final String CONFIG_KEY_LEVEL_COLORS = "slf4j.colors" ;
-204 private static final String CONFIG_KEY_PREFIX_LOG = "slf4j.log." ;
-205 private static final String CONFIG_KEY_SHOW_HEADER = "slf4j.showHeader" ;
-206 private static final String CONFIG_KEY_SHOW_LOG_NAME = "slf4j.showLogName" ;
-207 private static final String CONFIG_KEY_SHOW_SHORT_LOG_NAME = "slf4j.showShortLogName" ;
-208 private static final String CONFIG_KEY_SHOW_THREAD_NAME = "slf4j.showThreadName" ;
-209 private static Level CONFIG_VALUE_DEFAULT_LOG_LEVEL;
-210 private static Map<Level, ColorMarker> CONFIG_VALUE_LEVEL_COLORS;
-211 private static boolean CONFIG_VALUE_SHOW_HEADER;
-212 private static boolean CONFIG_VALUE_SHOW_LOG_NAME;
-213 private static boolean CONFIG_VALUE_SHOW_SHORT_LOG_NAME;
-214 private static boolean CONFIG_VALUE_SHOW_THREAD_NAME;
-215
-216 private static final Object INITIALIZATION_LOCK = new Object();
-217
-218 private final String name;
-219
-220 private transient String shortLogName = null ;
-221
-222
-223
-224 BukkitLoggerAdapter (final String name) {
-225 this .name = name;
-226 }
-227
-228
-229
-230
-231
-232
-233
-234
-235
-236 public static void init(final boolean reinitialize) {
-237 synchronized (BukkitLoggerAdapter.INITIALIZATION_LOCK) {
-238
-239 if (reinitialize) {
-240 BukkitLoggerAdapter.BUKKIT_PLUGIN = null ;
-241 BukkitLoggerAdapter.BUKKIT_PLUGIN_NAME = null ;
-242 } else if (BukkitLoggerAdapter.BUKKIT_PLUGIN != null ) { return ; }
-243
-244 if (BukkitLoggerAdapter.BUKKIT_PLUGIN_NAME == null ) {
-245 InputStream pluginYmlFile = null ;
-246 try {
-247 pluginYmlFile = BukkitLoggerAdapter.class .getClassLoader()
-248 .getResource("plugin.yml" )
-249 .openStream();
-250 final Yaml yaml = new Yaml();
-251 @SuppressWarnings("rawtypes" )
-252 final Map pluginYml = (Map) yaml.load(pluginYmlFile);
-253 BukkitLoggerAdapter.BUKKIT_PLUGIN_NAME = (String) pluginYml.get("name" );
-254 } catch (final IOException e) {
-255 throw new IllegalStateException(e);
-256 } finally {
-257 if (pluginYmlFile != null ) {
-258 try {
-259 pluginYmlFile.close();
-260 } catch (final IOException e) {
-261 e.printStackTrace();
-262 }
-263 }
-264 }
-265 }
-266
-267
-268
-269
-270 BukkitLoggerAdapter.BUKKIT_PLUGIN = Bukkit.getPluginManager()
-271 .getPlugin(BukkitLoggerAdapter.BUKKIT_PLUGIN_NAME);
-272
-273
-274
-275
-276
-277 BukkitLoggerAdapter.CONFIG_VALUE_DEFAULT_LOG_LEVEL = BukkitLoggerAdapter.stringToLevel(BukkitLoggerAdapter.getStringProperty(BukkitLoggerAdapter.CONFIG_KEY_DEFAULT_LOG_LEVEL,
-278 BukkitLoggerAdapter.CONFIG_FALLBACK_DEFAULT_LOG_LEVEL));
-279 if (BukkitLoggerAdapter.CONFIG_VALUE_DEFAULT_LOG_LEVEL == null ) {
-280 BukkitLoggerAdapter.CONFIG_VALUE_DEFAULT_LOG_LEVEL = BukkitLoggerAdapter.stringToLevel(BukkitLoggerAdapter.CONFIG_FALLBACK_DEFAULT_LOG_LEVEL);
-281 }
-282 BukkitLoggerAdapter.CONFIG_VALUE_LEVEL_COLORS = BukkitLoggerAdapter.getLevelColorsMap(BukkitLoggerAdapter.CONFIG_KEY_LEVEL_COLORS,
-283 BukkitLoggerAdapter.CONFIG_FALLBACK_LEVEL_COLORS);
-284 BukkitLoggerAdapter.CONFIG_VALUE_SHOW_HEADER = BukkitLoggerAdapter.getBooleanProperty(BukkitLoggerAdapter.CONFIG_KEY_SHOW_HEADER,
-285 BukkitLoggerAdapter.CONFIG_FALLBACK_SHOW_HEADER);
-286 BukkitLoggerAdapter.CONFIG_VALUE_SHOW_LOG_NAME = BukkitLoggerAdapter.getBooleanProperty(BukkitLoggerAdapter.CONFIG_KEY_SHOW_LOG_NAME,
-287 BukkitLoggerAdapter.CONFIG_FALLBACK_SHOW_LOG_NAME);
-288 BukkitLoggerAdapter.CONFIG_VALUE_SHOW_SHORT_LOG_NAME = BukkitLoggerAdapter.getBooleanProperty(BukkitLoggerAdapter.CONFIG_KEY_SHOW_SHORT_LOG_NAME,
-289 BukkitLoggerAdapter.CONFIG_FALLBACK_SHOW_SHORT_LOG_NAME);
-290 BukkitLoggerAdapter.CONFIG_VALUE_SHOW_THREAD_NAME = BukkitLoggerAdapter.getBooleanProperty(BukkitLoggerAdapter.CONFIG_KEY_SHOW_THREAD_NAME,
-291 BukkitLoggerAdapter.CONFIG_FALLBACK_SHOW_THREAD_NAME);
-292 }
-293 }
-294
-295
-296
-297
-298
-299
-300 private static Map<Level, ColorMarker> fallbackLevelColors() {
-301 return ImmutableMap.<Level, ColorMarker> builder()
-302 .put(Level.ERROR, ColorMarker.RED)
-303 .put(Level.WARN, ColorMarker.YELLOW)
-304 .put(Level.INFO, ColorMarker.NONE)
-305 .put(Level.DEBUG, ColorMarker.NONE)
-306 .put(Level.TRACE, ColorMarker.NONE).build();
-307 }
-308
-309
-310
-311
-312
-313
-314
-315
-316
-317
-318
-319
-320
-321 private static boolean getBooleanProperty(final String name,
-322 final boolean defaultValue) {
-323 synchronized (BukkitLoggerAdapter.INITIALIZATION_LOCK) {
-324 if (BukkitLoggerAdapter.BUKKIT_PLUGIN == null ) { return defaultValue; }
-325 final String prop = BukkitLoggerAdapter.BUKKIT_PLUGIN.getConfig()
-326 .getString(name);
-327 if ("true" .equalsIgnoreCase(prop)) { return true ; }
-328 if ("false" .equalsIgnoreCase(prop)) { return false; }
-329 return defaultValue;
-330 }
-331 }
-332
-333
-334
-335
-336
-337
-338
-339 private static java.util.logging.Logger getBukkitLogger() {
-340 synchronized (BukkitLoggerAdapter.INITIALIZATION_LOCK) {
-341 return BukkitLoggerAdapter.BUKKIT_PLUGIN == null ? Bukkit.getLogger()
-342 : BukkitLoggerAdapter.BUKKIT_PLUGIN.getLogger();
-343 }
-344 }
-345
-346
-347
-348
-349
-350
-351
-352
-353
-354
-355
-356
-357
-358
-359
-360
-361 private static Map<Level, ColorMarker>
-362 getLevelColorsMap(final String property,
-363 final Map<Level, ColorMarker> defaultValues) {
-364 synchronized (BukkitLoggerAdapter.INITIALIZATION_LOCK) {
-365
-366 if (BukkitLoggerAdapter.BUKKIT_PLUGIN == null ) { return defaultValues; }
-367 final ConfigurationSection config = BukkitLoggerAdapter.BUKKIT_PLUGIN.getConfig()
-368 .getConfigurationSection(property);
-369
-370 if (config == null ) { return defaultValues; }
-371
-372 final Map<String, Object> configValues = config.getValues(false);
-373 final Map<Level, ColorMarker> convertedConfigValues = new HashMap<Level, ColorMarker>();
-374 for (final Map.Entry<String, Object> configValue : configValues.entrySet()) {
-375 final String levelName = configValue.getKey().toUpperCase();
-376 final String formatName = configValue.getValue().toString()
-377 .toUpperCase();
-378 Level level;
-379 ColorMarker format;
-380 try {
-381 level = Level.valueOf(levelName);
-382 format = ColorMarker.valueOf(formatName);
-383 } catch (final IllegalArgumentException e) {
-384
-385 continue ;
-386 }
-387 convertedConfigValues.put(level, format);
-388 }
-389
-390 final Map<Level, ColorMarker> finalConfigValues = new HashMap<Level, ColorMarker>();
-391 finalConfigValues.putAll(defaultValues);
-392 finalConfigValues.putAll(convertedConfigValues);
-393
-394 return ImmutableMap.<Level, ColorMarker> builder()
-395 .putAll(finalConfigValues).build();
-396 }
-397 }
-398
-399
-400
-401
-402
-403
-404
-405
-406
-407
-408
-409 private static String getStringProperty(final String name,
-410 final String defaultValue) {
-411 synchronized (BukkitLoggerAdapter.INITIALIZATION_LOCK) {
-412 if (BukkitLoggerAdapter.BUKKIT_PLUGIN == null ) { return defaultValue; }
-413 final String prop = BukkitLoggerAdapter.BUKKIT_PLUGIN.getConfig()
-414 .getString(name);
-415 return (prop == null ) ? defaultValue : prop;
-416 }
-417 }
-418
-419
-420
-421
-422
-423
-424
-425
-426
-427
-428
-429
-430
-431
-432
-433 private static java.util.logging.Level
-434 slf4jLevelIntToBukkitJULLevel(final Level slf4jLevel) {
-435 java.util.logging.Level julLevel;
-436 switch (slf4jLevel) {
-437 case ERROR:
-438 julLevel = java.util.logging.Level.SEVERE;
-439 break ;
-440 case WARN:
-441 julLevel = java.util.logging.Level.WARNING;
-442 break ;
-443 default :
-444
-445
-446
-447 julLevel = java.util.logging.Level.INFO;
-448 break ;
-449 }
-450 return julLevel;
-451 }
-452
-453
-454
-455
-456
-457
-458
-459
-460
-461 private static Level stringToLevel(final String levelStr) {
-462 if ("trace" .equalsIgnoreCase(levelStr)) {
-463 return Level.TRACE;
-464 } else if ("debug" .equalsIgnoreCase(levelStr)) {
-465 return Level.DEBUG;
-466 } else if ("info" .equalsIgnoreCase(levelStr)) {
-467 return Level.INFO;
-468 } else if ("warn" .equalsIgnoreCase(levelStr)) {
-469 return Level.WARN;
-470 } else if ("error" .equalsIgnoreCase(levelStr)) {
-471 return Level.ERROR;
-472 } else {
-473 return null ;
-474 }
-475 }
-476
-477 @Override
-478 public void debug(final Marker marker, final String msg) {
-479 if (!this .isDebugEnabled()) { return ; }
-480 this .log(Level.DEBUG, marker, msg, null );
-481 }
-482
-483 @Override
-484 public void debug(final Marker marker, final String format, final Object arg) {
-485 if (!this .isDebugEnabled()) { return ; }
-486 this .formatAndLog(Level.DEBUG, marker, format, arg, null );
-487 }
-488
-489 @Override
-490 public void debug(final Marker marker, final String format,
-491 final Object... arguments) {
-492 if (!this .isDebugEnabled()) { return ; }
-493 this .formatAndLog(Level.DEBUG, marker, format, arguments);
-494 }
-495
-496 @Override
-497 public void debug(final Marker marker, final String format,
-498 final Object arg1, final Object arg2) {
-499 if (!this .isDebugEnabled()) { return ; }
-500 this .formatAndLog(Level.DEBUG, marker, format, arg1, arg2);
-501 }
-502
-503 @Override
-504 public void debug(final Marker marker, final String msg, final Throwable t) {
-505 if (!this .isDebugEnabled()) { return ; }
-506 this .log(Level.DEBUG, marker, msg, t);
-507 }
-508
-509 @Override
-510 public void debug(final String msg) {
-511 if (!this .isDebugEnabled()) { return ; }
-512 this .log(Level.DEBUG, null , msg, null );
-513 }
-514
-515 @Override
-516 public void debug(final String format, final Object arg) {
-517 if (!this .isDebugEnabled()) { return ; }
-518 this .formatAndLog(Level.DEBUG, null , format, arg, null );
-519 }
-520
-521 @Override
-522 public void debug(final String format, final Object... arguments) {
-523 if (!this .isDebugEnabled()) { return ; }
-524 this .formatAndLog(Level.DEBUG, null , format, arguments);
-525 }
-526
-527 @Override
-528 public void debug(final String format, final Object arg1, final Object arg2) {
-529 if (!this .isDebugEnabled()) { return ; }
-530 this .formatAndLog(Level.DEBUG, null , format, arg1, arg2);
-531 }
-532
-533 @Override
-534 public void debug(final String msg, final Throwable t) {
-535 if (!this .isDebugEnabled()) { return ; }
-536 this .log(Level.DEBUG, null , msg, t);
-537 }
-538
-539 @Override
-540 public void error(final Marker marker, final String msg) {
-541 if (!this .isErrorEnabled()) { return ; }
-542 this .log(Level.ERROR, marker, msg, null );
-543 }
-544
-545 @Override
-546 public void error(final Marker marker, final String format, final Object arg) {
-547 if (!this .isErrorEnabled()) { return ; }
-548 this .formatAndLog(Level.ERROR, marker, format, arg, null );
-549 }
-550
-551 @Override
-552 public void error(final Marker marker, final String format,
-553 final Object... arguments) {
-554 if (!this .isErrorEnabled()) { return ; }
-555 this .formatAndLog(Level.ERROR, marker, format, arguments);
-556 }
-557
-558 @Override
-559 public void error(final Marker marker, final String format,
-560 final Object arg1, final Object arg2) {
-561 if (!this .isErrorEnabled()) { return ; }
-562 this .formatAndLog(Level.ERROR, marker, format, arg1, arg2);
-563 }
-564
-565 @Override
-566 public void error(final Marker marker, final String msg, final Throwable t) {
-567 if (!this .isErrorEnabled()) { return ; }
-568 this .log(Level.ERROR, marker, msg, t);
-569 }
-570
-571 @Override
-572 public void error(final String msg) {
-573 if (!this .isErrorEnabled()) { return ; }
-574 this .log(Level.ERROR, null , msg, null );
-575 }
-576
-577 @Override
-578 public void error(final String format, final Object arg) {
-579 if (!this .isErrorEnabled()) { return ; }
-580 this .formatAndLog(Level.ERROR, null , format, arg, null );
-581 }
-582
-583 @Override
-584 public void error(final String format, final Object... arguments) {
-585 if (!this .isErrorEnabled()) { return ; }
-586 this .formatAndLog(Level.ERROR, null , format, arguments);
-587 }
-588
-589 @Override
-590 public void error(final String format, final Object arg1, final Object arg2) {
-591 if (!this .isErrorEnabled()) { return ; }
-592 this .formatAndLog(Level.ERROR, null , format, arg1, arg2);
-593 }
-594
-595 @Override
-596 public void error(final String msg, final Throwable t) {
-597 if (!this .isErrorEnabled()) { return ; }
-598 this .log(Level.ERROR, null , msg, t);
-599 }
-600
-601 @Override
-602 public String getName() {
-603 return this .name;
-604 }
-605
-606 @Override
-607 public void info(final Marker marker, final String msg) {
-608 if (!this .isInfoEnabled()) { return ; }
-609 this .log(Level.INFO, marker, msg, null );
-610 }
-611
-612 @Override
-613 public void info(final Marker marker, final String format, final Object arg) {
-614 if (!this .isInfoEnabled()) { return ; }
-615 this .formatAndLog(Level.INFO, marker, format, arg, null );
-616 }
-617
-618 @Override
-619 public void info(final Marker marker, final String format,
-620 final Object... arguments) {
-621 if (!this .isInfoEnabled()) { return ; }
-622 this .formatAndLog(Level.INFO, marker, format, arguments);
-623 }
-624
-625 @Override
-626 public void info(final Marker marker, final String format, final Object arg1,
-627 final Object arg2) {
-628 if (!this .isInfoEnabled()) { return ; }
-629 this .formatAndLog(Level.INFO, marker, format, arg1, arg2);
-630 }
-631
-632 @Override
-633 public void info(final Marker marker, final String msg, final Throwable t) {
-634 if (!this .isInfoEnabled()) { return ; }
-635 this .log(Level.INFO, marker, msg, t);
-636 }
-637
-638 @Override
-639 public void info(final String msg) {
-640 if (!this .isInfoEnabled()) { return ; }
-641 this .log(Level.INFO, null , msg, null );
-642 }
-643
-644 @Override
-645 public void info(final String format, final Object arg) {
-646 if (!this .isInfoEnabled()) { return ; }
-647 this .formatAndLog(Level.INFO, null , format, arg, null );
-648 }
-649
-650 @Override
-651 public void info(final String format, final Object... arguments) {
-652 if (!this .isInfoEnabled()) { return ; }
-653 this .formatAndLog(Level.INFO, null , format, arguments);
-654 }
-655
-656 @Override
-657 public void info(final String format, final Object arg1, final Object arg2) {
-658 if (!this .isInfoEnabled()) { return ; }
-659 this .formatAndLog(Level.INFO, null , format, arg1, arg2);
-660 }
-661
-662 @Override
-663 public void info(final String msg, final Throwable t) {
-664 if (!this .isInfoEnabled()) { return ; }
-665 this .log(Level.INFO, null , msg, t);
-666 }
-667
-668 @Override
-669 public boolean isDebugEnabled() {
-670 return this .isLevelEnabled(Level.DEBUG);
-671 }
-672
-673 @Override
-674 public boolean isDebugEnabled(final Marker marker) {
-675 return this .isLevelEnabled(Level.DEBUG);
-676 }
-677
-678 @Override
-679 public boolean isErrorEnabled() {
-680 return this .isLevelEnabled(Level.ERROR);
-681 }
-682
-683 @Override
-684 public boolean isErrorEnabled(final Marker marker) {
-685 return this .isLevelEnabled(Level.ERROR);
-686 }
-687
-688 @Override
-689 public boolean isInfoEnabled() {
-690 return this .isLevelEnabled(Level.INFO);
-691 }
-692
-693 @Override
-694 public boolean isInfoEnabled(final Marker marker) {
-695 return this .isLevelEnabled(Level.INFO);
-696 }
-697
-698 @Override
-699 public boolean isTraceEnabled() {
-700 return this .isLevelEnabled(Level.TRACE);
-701 }
-702
-703 @Override
-704 public boolean isTraceEnabled(final Marker marker) {
-705 return this .isLevelEnabled(Level.TRACE);
-706 }
-707
-708 @Override
-709 public boolean isWarnEnabled() {
-710 return this .isLevelEnabled(Level.WARN);
-711 }
-712
-713 @Override
-714 public boolean isWarnEnabled(final Marker marker) {
-715 return this .isLevelEnabled(Level.WARN);
-716 }
-717
-718 @Override
-719 public void trace(final Marker marker, final String msg) {
-720 if (!this .isTraceEnabled()) { return ; }
-721 this .log(Level.TRACE, marker, msg, null );
-722 }
-723
-724 @Override
-725 public void trace(final Marker marker, final String format, final Object arg) {
-726 if (!this .isTraceEnabled()) { return ; }
-727 this .formatAndLog(Level.TRACE, marker, format, arg, null );
-728 }
-729
-730 @Override
-731 public void trace(final Marker marker, final String format,
-732 final Object... arguments) {
-733 if (!this .isTraceEnabled()) { return ; }
-734 this .formatAndLog(Level.TRACE, marker, format, arguments);
-735 }
-736
-737 @Override
-738 public void trace(final Marker marker, final String format,
-739 final Object arg1, final Object arg2) {
-740 if (!this .isTraceEnabled()) { return ; }
-741 this .formatAndLog(Level.TRACE, marker, format, arg1, arg2);
-742 }
-743
-744 @Override
-745 public void trace(final Marker marker, final String msg, final Throwable t) {
-746 if (!this .isTraceEnabled()) { return ; }
-747 this .log(Level.TRACE, marker, msg, t);
-748 }
-749
-750 @Override
-751 public void trace(final String msg) {
-752 if (!this .isTraceEnabled()) { return ; }
-753 this .log(Level.TRACE, null , msg, null );
-754 }
-755
-756 @Override
-757 public void trace(final String format, final Object arg) {
-758 if (!this .isTraceEnabled()) { return ; }
-759 this .formatAndLog(Level.TRACE, null , format, arg, null );
-760 }
-761
-762 @Override
-763 public void trace(final String format, final Object... arguments) {
-764 if (!this .isTraceEnabled()) { return ; }
-765 this .formatAndLog(Level.TRACE, null , format, arguments);
-766 }
-767
-768 @Override
-769 public void trace(final String format, final Object arg1, final Object arg2) {
-770 if (!this .isTraceEnabled()) { return ; }
-771 this .formatAndLog(Level.TRACE, null , format, arg1, arg2);
-772 }
-773
-774 @Override
-775 public void trace(final String msg, final Throwable t) {
-776 if (!this .isTraceEnabled()) { return ; }
-777 this .log(Level.TRACE, null , msg, t);
-778 }
-779
-780 @Override
-781 public void warn(final Marker marker, final String msg) {
-782 if (!this .isWarnEnabled()) { return ; }
-783 this .log(Level.WARN, marker, msg, null );
-784 }
-785
-786 @Override
-787 public void warn(final Marker marker, final String format, final Object arg) {
-788 if (!this .isWarnEnabled()) { return ; }
-789 this .formatAndLog(Level.WARN, marker, format, arg, null );
-790 }
-791
-792 @Override
-793 public void warn(final Marker marker, final String format,
-794 final Object... arguments) {
-795 if (!this .isWarnEnabled()) { return ; }
-796 this .formatAndLog(Level.WARN, marker, format, arguments);
-797 }
-798
-799 @Override
-800 public void warn(final Marker marker, final String format, final Object arg1,
-801 final Object arg2) {
-802 if (!this .isWarnEnabled()) { return ; }
-803 this .formatAndLog(Level.WARN, marker, format, arg1, arg2);
-804 }
-805
-806 @Override
-807 public void warn(final Marker marker, final String msg, final Throwable t) {
-808 if (!this .isWarnEnabled()) { return ; }
-809 this .log(Level.WARN, marker, msg, t);
-810 }
-811
-812 @Override
-813 public void warn(final String msg) {
-814 if (!this .isWarnEnabled()) { return ; }
-815 this .log(Level.WARN, null , msg, null );
-816 }
-817
-818 @Override
-819 public void warn(final String format, final Object arg) {
-820 if (!this .isWarnEnabled()) { return ; }
-821 this .formatAndLog(Level.WARN, null , format, arg, null );
-822 }
-823
-824 @Override
-825 public void warn(final String format, final Object... arguments) {
-826 if (!this .isWarnEnabled()) { return ; }
-827 this .formatAndLog(Level.WARN, null , format, arguments);
-828 }
-829
-830 @Override
-831 public void warn(final String format, final Object arg1, final Object arg2) {
-832 if (!this .isWarnEnabled()) { return ; }
-833 this .formatAndLog(Level.WARN, null , format, arg1, arg2);
-834 }
-835
-836 @Override
-837 public void warn(final String msg, final Throwable t) {
-838 if (!this .isWarnEnabled()) { return ; }
-839 this .log(Level.WARN, null , msg, t);
-840 }
-841
-842
-843
-844
-845
-846
-847
-848
-849 private String computeShortName() {
-850 final List<String> splitName = new ArrayList<String>();
-851 splitName.addAll(Arrays.asList(this .name.split("\\." )));
-852 final int shortNameLength = ((splitName.size() - 1) * 2)
-853 + splitName.get(splitName.size() - 1).length();
-854 final String finalName = splitName.remove(splitName.size() - 1);
-855 final StringBuffer shortName = new StringBuffer(shortNameLength);
-856 for (final String part : splitName) {
-857 shortName.append(part.charAt(0)).append('.');
-858 }
-859 shortName.append(finalName);
-860 return shortName.toString();
-861 }
-862
-863
-864
-865
-866
-867
-868
-869
-870 private Level determineCurrentLevel() {
-871
-872 String tempName = this .name;
-873 Level level = null ;
-874 int indexOfLastDot = tempName.length();
-875 while ((level == null ) && (indexOfLastDot > -1)) {
-876 tempName = tempName.substring(0, indexOfLastDot);
-877 level = BukkitLoggerAdapter.stringToLevel(BukkitLoggerAdapter.getStringProperty(BukkitLoggerAdapter.CONFIG_KEY_PREFIX_LOG
-878 + tempName,
-879 null ));
-880 indexOfLastDot = String.valueOf(tempName).lastIndexOf("." );
-881 }
-882
-883 return (level == null ) ? BukkitLoggerAdapter.CONFIG_VALUE_DEFAULT_LOG_LEVEL
-884 : level;
-885 }
-886
-887
-888
-889
-890
-891
-892
-893
-894
-895
-896
-897
-898
-899 private void formatAndLog(final Level level, final Marker marker,
-900 final String format, final Object... arguments) {
-901 if (!this .isLevelEnabled(level)) { return ; }
-902 final FormattingTuple tp = MessageFormatter.arrayFormat(format, arguments);
-903 this .log(level, marker, tp.getMessage(), tp.getThrowable());
-904 }
-905
-906
-907
-908
-909
-910
-911
-912
-913
-914
-915
-916
-917
-918
-919
-920 private void formatAndLog(final Level level, final Marker marker,
-921 final String format, final Object arg1,
-922 final Object arg2) {
-923 if (!this .isLevelEnabled(level)) { return ; }
-924 final FormattingTuple tp = MessageFormatter.format(format, arg1, arg2);
-925 this .log(level, marker, tp.getMessage(), tp.getThrowable());
-926 }
-927
-928
-929
-930
-931
-932
-933
-934
-935 private boolean isLevelEnabled(final Level logLevel) {
-936
-937
-938
-939 BukkitLoggerAdapter.init(false);
-940
-941
-942
-943
-944
-945
-946 final Level currentLogLevel = this .determineCurrentLevel();
-947 return (logLevel.toInt() >= currentLogLevel.toInt())
-948 && (BukkitLoggerAdapter.getBukkitLogger().isLoggable(BukkitLoggerAdapter.slf4jLevelIntToBukkitJULLevel(logLevel)));
-949 }
-950
-951
-952
-953
-954
-955
-956
-957
-958
-959
-960
-961
-962
-963
-964 private void log(final Level level, final Marker marker,
-965 final String message, final Throwable throwable) {
-966 final java.util.logging.Logger logger;
-967 synchronized (BukkitLoggerAdapter.INITIALIZATION_LOCK) {
-968
-969 if (!this .isLevelEnabled(level)) { return ; }
-970
-971 logger = BukkitLoggerAdapter.getBukkitLogger();
-972 }
-973
-974
-975 final StringBuilder buf = new StringBuilder(32);
-976 boolean hasHeader = false;
-977
-978
-979
-980 if (marker instanceof ColorMarker) {
-981 buf.append(((ColorMarker) marker).getValue());
-982 } else {
-983 buf.append(BukkitLoggerAdapter.CONFIG_VALUE_LEVEL_COLORS.get(level)
-984 .getValue());
-985 }
-986
-987
-988 if (BukkitLoggerAdapter.CONFIG_VALUE_SHOW_HEADER) {
-989 hasHeader = true ;
-990 buf.append("[SLF4J]" );
-991 }
-992
-993
-994
-995 switch (level) {
-996 case TRACE:
-997 hasHeader = true ;
-998 buf.append("[TRACE]" );
-999 break ;
-1000 case DEBUG:
-1001 hasHeader = true ;
-1002 buf.append("[DEBUG]" );
-1003 break ;
-1004 default :
-1005 break ;
-1006 }
-1007
-1008
-1009 if (BukkitLoggerAdapter.CONFIG_VALUE_SHOW_THREAD_NAME) {
-1010 hasHeader = true ;
-1011 buf.append('[');
-1012 buf.append(Thread.currentThread().getName());
-1013 buf.append("]" );
-1014 }
-1015
-1016
-1017 if (hasHeader) {
-1018 buf.append(' ');
-1019 }
-1020
-1021
-1022 if (BukkitLoggerAdapter.CONFIG_VALUE_SHOW_LOG_NAME) {
-1023 buf.append('{').append(this .name).append("} " );
-1024 } else if (BukkitLoggerAdapter.CONFIG_VALUE_SHOW_SHORT_LOG_NAME) {
-1025 if (this .shortLogName == null ) {
-1026 this .shortLogName = this .computeShortName();
-1027 }
-1028 buf.append('{').append(this .shortLogName).append("} " );
-1029 }
-1030
-1031
-1032 buf.append(message);
-1033
-1034
-1035 if (throwable != null ) {
-1036 buf.append('\n').append(ExceptionUtils.getFullStackTrace(throwable)
-1037 .trim());
-1038 }
-1039
-1040
-1041 buf.append(ChatColor.RESET);
-1042
-1043
-1044 logger.log(BukkitLoggerAdapter.slf4jLevelIntToBukkitJULLevel(level),
-1045 ColorMapper.map(buf.toString()));
-1046 }
-1047 }
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191 public final class BukkitLoggerAdapter implements Logger {
+192
+193
+194 private static transient Plugin BUKKIT_PLUGIN;
+195 private static transient String BUKKIT_PLUGIN_NAME;
+196
+197 private static final String CONFIG_FALLBACK_DEFAULT_LOG_LEVEL = "info" ;
+198 private static final Map<Level, ColorMarker> CONFIG_FALLBACK_LEVEL_COLORS = BukkitLoggerAdapter.fallbackLevelColors();
+199 private static final boolean CONFIG_FALLBACK_SHOW_HEADER = false;
+200 private static final boolean CONFIG_FALLBACK_SHOW_LOG_NAME = false;
+201 private static final boolean CONFIG_FALLBACK_SHOW_SHORT_LOG_NAME = true ;
+202 private static final boolean CONFIG_FALLBACK_SHOW_THREAD_NAME = false;
+203 private static final String CONFIG_KEY_DEFAULT_LOG_LEVEL = "slf4j.defaultLogLevel" ;
+204 private static final String CONFIG_KEY_LEVEL_COLORS = "slf4j.colors" ;
+205 private static final String CONFIG_KEY_PREFIX_LOG = "slf4j.log." ;
+206 private static final String CONFIG_KEY_SHOW_HEADER = "slf4j.showHeader" ;
+207 private static final String CONFIG_KEY_SHOW_LOG_NAME = "slf4j.showLogName" ;
+208 private static final String CONFIG_KEY_SHOW_SHORT_LOG_NAME = "slf4j.showShortLogName" ;
+209 private static final String CONFIG_KEY_SHOW_THREAD_NAME = "slf4j.showThreadName" ;
+210 private static Level CONFIG_VALUE_DEFAULT_LOG_LEVEL;
+211 private static Map<Level, ColorMarker> CONFIG_VALUE_LEVEL_COLORS;
+212 private static boolean CONFIG_VALUE_SHOW_HEADER;
+213 private static boolean CONFIG_VALUE_SHOW_LOG_NAME;
+214 private static boolean CONFIG_VALUE_SHOW_SHORT_LOG_NAME;
+215 private static boolean CONFIG_VALUE_SHOW_THREAD_NAME;
+216
+217 private static final Object INITIALIZATION_LOCK = new Object();
+218
+219 private final String name;
+220
+221 private transient String shortLogName = null ;
+222
+223
+224
+225 BukkitLoggerAdapter (final String name) {
+226 this .name = name;
+227 }
+228
+229
+230
+231
+232
+233
+234
+235
+236
+237 public static void init(final boolean reinitialize) {
+238 synchronized (BukkitLoggerAdapter.INITIALIZATION_LOCK) {
+239
+240 if (reinitialize) {
+241 BukkitLoggerAdapter.BUKKIT_PLUGIN = null ;
+242 BukkitLoggerAdapter.BUKKIT_PLUGIN_NAME = null ;
+243 } else if (BukkitLoggerAdapter.BUKKIT_PLUGIN != null ) { return ; }
+244
+245 if (BukkitLoggerAdapter.BUKKIT_PLUGIN_NAME == null ) {
+246 InputStream pluginYmlFile = null ;
+247 try {
+248 pluginYmlFile = BukkitLoggerAdapter.class .getClassLoader()
+249 .getResource("plugin.yml" )
+250 .openStream();
+251 final Yaml yaml = new Yaml();
+252 @SuppressWarnings("rawtypes" )
+253 final Map pluginYml = (Map) yaml.load(pluginYmlFile);
+254 BukkitLoggerAdapter.BUKKIT_PLUGIN_NAME = (String) pluginYml.get("name" );
+255 } catch (final IOException e) {
+256 throw new IllegalStateException(e);
+257 } finally {
+258 if (pluginYmlFile != null ) {
+259 try {
+260 pluginYmlFile.close();
+261 } catch (final IOException e) {
+262 e.printStackTrace();
+263 }
+264 }
+265 }
+266 }
+267
+268
+269
+270
+271 BukkitLoggerAdapter.BUKKIT_PLUGIN = Bukkit.getPluginManager()
+272 .getPlugin(BukkitLoggerAdapter.BUKKIT_PLUGIN_NAME);
+273
+274
+275
+276
+277
+278 BukkitLoggerAdapter.CONFIG_VALUE_DEFAULT_LOG_LEVEL = BukkitLoggerAdapter.stringToLevel(BukkitLoggerAdapter.getStringProperty(BukkitLoggerAdapter.CONFIG_KEY_DEFAULT_LOG_LEVEL,
+279 BukkitLoggerAdapter.CONFIG_FALLBACK_DEFAULT_LOG_LEVEL));
+280 if (BukkitLoggerAdapter.CONFIG_VALUE_DEFAULT_LOG_LEVEL == null ) {
+281 BukkitLoggerAdapter.CONFIG_VALUE_DEFAULT_LOG_LEVEL = BukkitLoggerAdapter.stringToLevel(BukkitLoggerAdapter.CONFIG_FALLBACK_DEFAULT_LOG_LEVEL);
+282 }
+283 BukkitLoggerAdapter.CONFIG_VALUE_LEVEL_COLORS = BukkitLoggerAdapter.getLevelColorsMap(BukkitLoggerAdapter.CONFIG_KEY_LEVEL_COLORS,
+284 BukkitLoggerAdapter.CONFIG_FALLBACK_LEVEL_COLORS);
+285 BukkitLoggerAdapter.CONFIG_VALUE_SHOW_HEADER = BukkitLoggerAdapter.getBooleanProperty(BukkitLoggerAdapter.CONFIG_KEY_SHOW_HEADER,
+286 BukkitLoggerAdapter.CONFIG_FALLBACK_SHOW_HEADER);
+287 BukkitLoggerAdapter.CONFIG_VALUE_SHOW_LOG_NAME = BukkitLoggerAdapter.getBooleanProperty(BukkitLoggerAdapter.CONFIG_KEY_SHOW_LOG_NAME,
+288 BukkitLoggerAdapter.CONFIG_FALLBACK_SHOW_LOG_NAME);
+289 BukkitLoggerAdapter.CONFIG_VALUE_SHOW_SHORT_LOG_NAME = BukkitLoggerAdapter.getBooleanProperty(BukkitLoggerAdapter.CONFIG_KEY_SHOW_SHORT_LOG_NAME,
+290 BukkitLoggerAdapter.CONFIG_FALLBACK_SHOW_SHORT_LOG_NAME);
+291 BukkitLoggerAdapter.CONFIG_VALUE_SHOW_THREAD_NAME = BukkitLoggerAdapter.getBooleanProperty(BukkitLoggerAdapter.CONFIG_KEY_SHOW_THREAD_NAME,
+292 BukkitLoggerAdapter.CONFIG_FALLBACK_SHOW_THREAD_NAME);
+293 }
+294 }
+295
+296
+297
+298
+299
+300
+301 private static Map<Level, ColorMarker> fallbackLevelColors() {
+302 return ImmutableMap.<Level, ColorMarker> builder()
+303 .put(Level.ERROR, ColorMarker.RED)
+304 .put(Level.WARN, ColorMarker.YELLOW)
+305 .put(Level.INFO, ColorMarker.NONE)
+306 .put(Level.DEBUG, ColorMarker.NONE)
+307 .put(Level.TRACE, ColorMarker.NONE).build();
+308 }
+309
+310
+311
+312
+313
+314
+315
+316
+317
+318
+319
+320
+321
+322 private static boolean getBooleanProperty(final String name,
+323 final boolean defaultValue) {
+324 synchronized (BukkitLoggerAdapter.INITIALIZATION_LOCK) {
+325 if (BukkitLoggerAdapter.BUKKIT_PLUGIN == null ) { return defaultValue; }
+326 final String prop = BukkitLoggerAdapter.BUKKIT_PLUGIN.getConfig()
+327 .getString(name);
+328 if ("true" .equalsIgnoreCase(prop)) { return true ; }
+329 if ("false" .equalsIgnoreCase(prop)) { return false; }
+330 return defaultValue;
+331 }
+332 }
+333
+334
+335
+336
+337
+338
+339
+340 private static java.util.logging.Logger getBukkitLogger() {
+341 synchronized (BukkitLoggerAdapter.INITIALIZATION_LOCK) {
+342 return BukkitLoggerAdapter.BUKKIT_PLUGIN == null ? Bukkit.getLogger()
+343 : BukkitLoggerAdapter.BUKKIT_PLUGIN.getLogger();
+344 }
+345 }
+346
+347
+348
+349
+350
+351
+352
+353
+354
+355
+356
+357
+358
+359
+360
+361
+362 private static Map<Level, ColorMarker>
+363 getLevelColorsMap(final String property,
+364 final Map<Level, ColorMarker> defaultValues) {
+365 synchronized (BukkitLoggerAdapter.INITIALIZATION_LOCK) {
+366
+367 if (BukkitLoggerAdapter.BUKKIT_PLUGIN == null ) { return defaultValues; }
+368 final ConfigurationSection config = BukkitLoggerAdapter.BUKKIT_PLUGIN.getConfig()
+369 .getConfigurationSection(property);
+370
+371 if (config == null ) { return defaultValues; }
+372
+373 final Map<String, Object> configValues = config.getValues(false);
+374 final Map<Level, ColorMarker> convertedConfigValues = new HashMap<Level, ColorMarker>();
+375 for (final Map.Entry<String, Object> configValue : configValues.entrySet()) {
+376 final String levelName = configValue.getKey().toUpperCase();
+377 final String formatName = configValue.getValue().toString()
+378 .toUpperCase();
+379 Level level;
+380 ColorMarker format;
+381 try {
+382 level = Level.valueOf(levelName);
+383 format = ColorMarker.valueOf(formatName);
+384 } catch (final IllegalArgumentException e) {
+385
+386 continue ;
+387 }
+388 convertedConfigValues.put(level, format);
+389 }
+390
+391 final Map<Level, ColorMarker> finalConfigValues = new HashMap<Level, ColorMarker>();
+392 finalConfigValues.putAll(defaultValues);
+393 finalConfigValues.putAll(convertedConfigValues);
+394
+395 return ImmutableMap.<Level, ColorMarker> builder()
+396 .putAll(finalConfigValues).build();
+397 }
+398 }
+399
+400
+401
+402
+403
+404
+405
+406
+407
+408
+409
+410 private static String getStringProperty(final String name,
+411 final String defaultValue) {
+412 synchronized (BukkitLoggerAdapter.INITIALIZATION_LOCK) {
+413 if (BukkitLoggerAdapter.BUKKIT_PLUGIN == null ) { return defaultValue; }
+414 final String prop = BukkitLoggerAdapter.BUKKIT_PLUGIN.getConfig()
+415 .getString(name);
+416 return (prop == null ) ? defaultValue : prop;
+417 }
+418 }
+419
+420
+421
+422
+423
+424
+425
+426
+427
+428
+429
+430
+431
+432
+433
+434 private static java.util.logging.Level
+435 slf4jLevelIntToBukkitJULLevel(final Level slf4jLevel) {
+436 java.util.logging.Level julLevel;
+437 switch (slf4jLevel) {
+438 case ERROR:
+439 julLevel = java.util.logging.Level.SEVERE;
+440 break ;
+441 case WARN:
+442 julLevel = java.util.logging.Level.WARNING;
+443 break ;
+444 default :
+445
+446
+447
+448 julLevel = java.util.logging.Level.INFO;
+449 break ;
+450 }
+451 return julLevel;
+452 }
+453
+454
+455
+456
+457
+458
+459
+460
+461
+462 private static Level stringToLevel(final String levelStr) {
+463 if ("trace" .equalsIgnoreCase(levelStr)) {
+464 return Level.TRACE;
+465 } else if ("debug" .equalsIgnoreCase(levelStr)) {
+466 return Level.DEBUG;
+467 } else if ("info" .equalsIgnoreCase(levelStr)) {
+468 return Level.INFO;
+469 } else if ("warn" .equalsIgnoreCase(levelStr)) {
+470 return Level.WARN;
+471 } else if ("error" .equalsIgnoreCase(levelStr)) {
+472 return Level.ERROR;
+473 } else {
+474 return null ;
+475 }
+476 }
+477
+478 @Override
+479 public void debug(final Marker marker, final String msg) {
+480 if (!this .isDebugEnabled()) { return ; }
+481 this .log(Level.DEBUG, marker, msg, null );
+482 }
+483
+484 @Override
+485 public void debug(final Marker marker, final String format, final Object arg) {
+486 if (!this .isDebugEnabled()) { return ; }
+487 this .formatAndLog(Level.DEBUG, marker, format, arg, null );
+488 }
+489
+490 @Override
+491 public void debug(final Marker marker, final String format,
+492 final Object... arguments) {
+493 if (!this .isDebugEnabled()) { return ; }
+494 this .formatAndLog(Level.DEBUG, marker, format, arguments);
+495 }
+496
+497 @Override
+498 public void debug(final Marker marker, final String format,
+499 final Object arg1, final Object arg2) {
+500 if (!this .isDebugEnabled()) { return ; }
+501 this .formatAndLog(Level.DEBUG, marker, format, arg1, arg2);
+502 }
+503
+504 @Override
+505 public void debug(final Marker marker, final String msg, final Throwable t) {
+506 if (!this .isDebugEnabled()) { return ; }
+507 this .log(Level.DEBUG, marker, msg, t);
+508 }
+509
+510 @Override
+511 public void debug(final String msg) {
+512 if (!this .isDebugEnabled()) { return ; }
+513 this .log(Level.DEBUG, null , msg, null );
+514 }
+515
+516 @Override
+517 public void debug(final String format, final Object arg) {
+518 if (!this .isDebugEnabled()) { return ; }
+519 this .formatAndLog(Level.DEBUG, null , format, arg, null );
+520 }
+521
+522 @Override
+523 public void debug(final String format, final Object... arguments) {
+524 if (!this .isDebugEnabled()) { return ; }
+525 this .formatAndLog(Level.DEBUG, null , format, arguments);
+526 }
+527
+528 @Override
+529 public void debug(final String format, final Object arg1, final Object arg2) {
+530 if (!this .isDebugEnabled()) { return ; }
+531 this .formatAndLog(Level.DEBUG, null , format, arg1, arg2);
+532 }
+533
+534 @Override
+535 public void debug(final String msg, final Throwable t) {
+536 if (!this .isDebugEnabled()) { return ; }
+537 this .log(Level.DEBUG, null , msg, t);
+538 }
+539
+540 @Override
+541 public void error(final Marker marker, final String msg) {
+542 if (!this .isErrorEnabled()) { return ; }
+543 this .log(Level.ERROR, marker, msg, null );
+544 }
+545
+546 @Override
+547 public void error(final Marker marker, final String format, final Object arg) {
+548 if (!this .isErrorEnabled()) { return ; }
+549 this .formatAndLog(Level.ERROR, marker, format, arg, null );
+550 }
+551
+552 @Override
+553 public void error(final Marker marker, final String format,
+554 final Object... arguments) {
+555 if (!this .isErrorEnabled()) { return ; }
+556 this .formatAndLog(Level.ERROR, marker, format, arguments);
+557 }
+558
+559 @Override
+560 public void error(final Marker marker, final String format,
+561 final Object arg1, final Object arg2) {
+562 if (!this .isErrorEnabled()) { return ; }
+563 this .formatAndLog(Level.ERROR, marker, format, arg1, arg2);
+564 }
+565
+566 @Override
+567 public void error(final Marker marker, final String msg, final Throwable t) {
+568 if (!this .isErrorEnabled()) { return ; }
+569 this .log(Level.ERROR, marker, msg, t);
+570 }
+571
+572 @Override
+573 public void error(final String msg) {
+574 if (!this .isErrorEnabled()) { return ; }
+575 this .log(Level.ERROR, null , msg, null );
+576 }
+577
+578 @Override
+579 public void error(final String format, final Object arg) {
+580 if (!this .isErrorEnabled()) { return ; }
+581 this .formatAndLog(Level.ERROR, null , format, arg, null );
+582 }
+583
+584 @Override
+585 public void error(final String format, final Object... arguments) {
+586 if (!this .isErrorEnabled()) { return ; }
+587 this .formatAndLog(Level.ERROR, null , format, arguments);
+588 }
+589
+590 @Override
+591 public void error(final String format, final Object arg1, final Object arg2) {
+592 if (!this .isErrorEnabled()) { return ; }
+593 this .formatAndLog(Level.ERROR, null , format, arg1, arg2);
+594 }
+595
+596 @Override
+597 public void error(final String msg, final Throwable t) {
+598 if (!this .isErrorEnabled()) { return ; }
+599 this .log(Level.ERROR, null , msg, t);
+600 }
+601
+602 @Override
+603 public String getName() {
+604 return this .name;
+605 }
+606
+607 @Override
+608 public void info(final Marker marker, final String msg) {
+609 if (!this .isInfoEnabled()) { return ; }
+610 this .log(Level.INFO, marker, msg, null );
+611 }
+612
+613 @Override
+614 public void info(final Marker marker, final String format, final Object arg) {
+615 if (!this .isInfoEnabled()) { return ; }
+616 this .formatAndLog(Level.INFO, marker, format, arg, null );
+617 }
+618
+619 @Override
+620 public void info(final Marker marker, final String format,
+621 final Object... arguments) {
+622 if (!this .isInfoEnabled()) { return ; }
+623 this .formatAndLog(Level.INFO, marker, format, arguments);
+624 }
+625
+626 @Override
+627 public void info(final Marker marker, final String format, final Object arg1,
+628 final Object arg2) {
+629 if (!this .isInfoEnabled()) { return ; }
+630 this .formatAndLog(Level.INFO, marker, format, arg1, arg2);
+631 }
+632
+633 @Override
+634 public void info(final Marker marker, final String msg, final Throwable t) {
+635 if (!this .isInfoEnabled()) { return ; }
+636 this .log(Level.INFO, marker, msg, t);
+637 }
+638
+639 @Override
+640 public void info(final String msg) {
+641 if (!this .isInfoEnabled()) { return ; }
+642 this .log(Level.INFO, null , msg, null );
+643 }
+644
+645 @Override
+646 public void info(final String format, final Object arg) {
+647 if (!this .isInfoEnabled()) { return ; }
+648 this .formatAndLog(Level.INFO, null , format, arg, null );
+649 }
+650
+651 @Override
+652 public void info(final String format, final Object... arguments) {
+653 if (!this .isInfoEnabled()) { return ; }
+654 this .formatAndLog(Level.INFO, null , format, arguments);
+655 }
+656
+657 @Override
+658 public void info(final String format, final Object arg1, final Object arg2) {
+659 if (!this .isInfoEnabled()) { return ; }
+660 this .formatAndLog(Level.INFO, null , format, arg1, arg2);
+661 }
+662
+663 @Override
+664 public void info(final String msg, final Throwable t) {
+665 if (!this .isInfoEnabled()) { return ; }
+666 this .log(Level.INFO, null , msg, t);
+667 }
+668
+669 @Override
+670 public boolean isDebugEnabled() {
+671 return this .isLevelEnabled(Level.DEBUG);
+672 }
+673
+674 @Override
+675 public boolean isDebugEnabled(final Marker marker) {
+676 return this .isLevelEnabled(Level.DEBUG);
+677 }
+678
+679 @Override
+680 public boolean isErrorEnabled() {
+681 return this .isLevelEnabled(Level.ERROR);
+682 }
+683
+684 @Override
+685 public boolean isErrorEnabled(final Marker marker) {
+686 return this .isLevelEnabled(Level.ERROR);
+687 }
+688
+689 @Override
+690 public boolean isInfoEnabled() {
+691 return this .isLevelEnabled(Level.INFO);
+692 }
+693
+694 @Override
+695 public boolean isInfoEnabled(final Marker marker) {
+696 return this .isLevelEnabled(Level.INFO);
+697 }
+698
+699 @Override
+700 public boolean isTraceEnabled() {
+701 return this .isLevelEnabled(Level.TRACE);
+702 }
+703
+704 @Override
+705 public boolean isTraceEnabled(final Marker marker) {
+706 return this .isLevelEnabled(Level.TRACE);
+707 }
+708
+709 @Override
+710 public boolean isWarnEnabled() {
+711 return this .isLevelEnabled(Level.WARN);
+712 }
+713
+714 @Override
+715 public boolean isWarnEnabled(final Marker marker) {
+716 return this .isLevelEnabled(Level.WARN);
+717 }
+718
+719 @Override
+720 public void trace(final Marker marker, final String msg) {
+721 if (!this .isTraceEnabled()) { return ; }
+722 this .log(Level.TRACE, marker, msg, null );
+723 }
+724
+725 @Override
+726 public void trace(final Marker marker, final String format, final Object arg) {
+727 if (!this .isTraceEnabled()) { return ; }
+728 this .formatAndLog(Level.TRACE, marker, format, arg, null );
+729 }
+730
+731 @Override
+732 public void trace(final Marker marker, final String format,
+733 final Object... arguments) {
+734 if (!this .isTraceEnabled()) { return ; }
+735 this .formatAndLog(Level.TRACE, marker, format, arguments);
+736 }
+737
+738 @Override
+739 public void trace(final Marker marker, final String format,
+740 final Object arg1, final Object arg2) {
+741 if (!this .isTraceEnabled()) { return ; }
+742 this .formatAndLog(Level.TRACE, marker, format, arg1, arg2);
+743 }
+744
+745 @Override
+746 public void trace(final Marker marker, final String msg, final Throwable t) {
+747 if (!this .isTraceEnabled()) { return ; }
+748 this .log(Level.TRACE, marker, msg, t);
+749 }
+750
+751 @Override
+752 public void trace(final String msg) {
+753 if (!this .isTraceEnabled()) { return ; }
+754 this .log(Level.TRACE, null , msg, null );
+755 }
+756
+757 @Override
+758 public void trace(final String format, final Object arg) {
+759 if (!this .isTraceEnabled()) { return ; }
+760 this .formatAndLog(Level.TRACE, null , format, arg, null );
+761 }
+762
+763 @Override
+764 public void trace(final String format, final Object... arguments) {
+765 if (!this .isTraceEnabled()) { return ; }
+766 this .formatAndLog(Level.TRACE, null , format, arguments);
+767 }
+768
+769 @Override
+770 public void trace(final String format, final Object arg1, final Object arg2) {
+771 if (!this .isTraceEnabled()) { return ; }
+772 this .formatAndLog(Level.TRACE, null , format, arg1, arg2);
+773 }
+774
+775 @Override
+776 public void trace(final String msg, final Throwable t) {
+777 if (!this .isTraceEnabled()) { return ; }
+778 this .log(Level.TRACE, null , msg, t);
+779 }
+780
+781 @Override
+782 public void warn(final Marker marker, final String msg) {
+783 if (!this .isWarnEnabled()) { return ; }
+784 this .log(Level.WARN, marker, msg, null );
+785 }
+786
+787 @Override
+788 public void warn(final Marker marker, final String format, final Object arg) {
+789 if (!this .isWarnEnabled()) { return ; }
+790 this .formatAndLog(Level.WARN, marker, format, arg, null );
+791 }
+792
+793 @Override
+794 public void warn(final Marker marker, final String format,
+795 final Object... arguments) {
+796 if (!this .isWarnEnabled()) { return ; }
+797 this .formatAndLog(Level.WARN, marker, format, arguments);
+798 }
+799
+800 @Override
+801 public void warn(final Marker marker, final String format, final Object arg1,
+802 final Object arg2) {
+803 if (!this .isWarnEnabled()) { return ; }
+804 this .formatAndLog(Level.WARN, marker, format, arg1, arg2);
+805 }
+806
+807 @Override
+808 public void warn(final Marker marker, final String msg, final Throwable t) {
+809 if (!this .isWarnEnabled()) { return ; }
+810 this .log(Level.WARN, marker, msg, t);
+811 }
+812
+813 @Override
+814 public void warn(final String msg) {
+815 if (!this .isWarnEnabled()) { return ; }
+816 this .log(Level.WARN, null , msg, null );
+817 }
+818
+819 @Override
+820 public void warn(final String format, final Object arg) {
+821 if (!this .isWarnEnabled()) { return ; }
+822 this .formatAndLog(Level.WARN, null , format, arg, null );
+823 }
+824
+825 @Override
+826 public void warn(final String format, final Object... arguments) {
+827 if (!this .isWarnEnabled()) { return ; }
+828 this .formatAndLog(Level.WARN, null , format, arguments);
+829 }
+830
+831 @Override
+832 public void warn(final String format, final Object arg1, final Object arg2) {
+833 if (!this .isWarnEnabled()) { return ; }
+834 this .formatAndLog(Level.WARN, null , format, arg1, arg2);
+835 }
+836
+837 @Override
+838 public void warn(final String msg, final Throwable t) {
+839 if (!this .isWarnEnabled()) { return ; }
+840 this .log(Level.WARN, null , msg, t);
+841 }
+842
+843
+844
+845
+846
+847
+848
+849
+850 private String computeShortName() {
+851 final List<String> splitName = new ArrayList<String>();
+852 splitName.addAll(Arrays.asList(this .name.split("\\." )));
+853 final int shortNameLength = ((splitName.size() - 1) * 2)
+854 + splitName.get(splitName.size() - 1).length();
+855 final String finalName = splitName.remove(splitName.size() - 1);
+856 final StringBuffer shortName = new StringBuffer(shortNameLength);
+857 for (final String part : splitName) {
+858 shortName.append(part.charAt(0)).append('.');
+859 }
+860 shortName.append(finalName);
+861 return shortName.toString();
+862 }
+863
+864
+865
+866
+867
+868
+869
+870
+871 private Level determineCurrentLevel() {
+872
+873 String tempName = this .name;
+874 Level level = null ;
+875 int indexOfLastDot = tempName.length();
+876 while ((level == null ) && (indexOfLastDot > -1)) {
+877 tempName = tempName.substring(0, indexOfLastDot);
+878 level = BukkitLoggerAdapter.stringToLevel(BukkitLoggerAdapter.getStringProperty(BukkitLoggerAdapter.CONFIG_KEY_PREFIX_LOG
+879 + tempName,
+880 null ));
+881 indexOfLastDot = String.valueOf(tempName).lastIndexOf("." );
+882 }
+883
+884 return (level == null ) ? BukkitLoggerAdapter.CONFIG_VALUE_DEFAULT_LOG_LEVEL
+885 : level;
+886 }
+887
+888
+889
+890
+891
+892
+893
+894
+895
+896
+897
+898
+899
+900 private void formatAndLog(final Level level, final Marker marker,
+901 final String format, final Object... arguments) {
+902 if (!this .isLevelEnabled(level)) { return ; }
+903 final FormattingTuple tp = MessageFormatter.arrayFormat(format, arguments);
+904 this .log(level, marker, tp.getMessage(), tp.getThrowable());
+905 }
+906
+907
+908
+909
+910
+911
+912
+913
+914
+915
+916
+917
+918
+919
+920
+921 private void formatAndLog(final Level level, final Marker marker,
+922 final String format, final Object arg1,
+923 final Object arg2) {
+924 if (!this .isLevelEnabled(level)) { return ; }
+925 final FormattingTuple tp = MessageFormatter.format(format, arg1, arg2);
+926 this .log(level, marker, tp.getMessage(), tp.getThrowable());
+927 }
+928
+929
+930
+931
+932
+933
+934
+935
+936 private boolean isLevelEnabled(final Level logLevel) {
+937
+938
+939
+940 BukkitLoggerAdapter.init(false);
+941
+942
+943
+944
+945
+946
+947 final Level currentLogLevel = this .determineCurrentLevel();
+948 return (logLevel.toInt() >= currentLogLevel.toInt())
+949 && (BukkitLoggerAdapter.getBukkitLogger().isLoggable(BukkitLoggerAdapter.slf4jLevelIntToBukkitJULLevel(logLevel)));
+950 }
+951
+952
+953
+954
+955
+956
+957
+958
+959
+960
+961
+962
+963
+964
+965 private void log(final Level level, final Marker marker,
+966 final String message, final Throwable throwable) {
+967 final java.util.logging.Logger logger;
+968 synchronized (BukkitLoggerAdapter.INITIALIZATION_LOCK) {
+969
+970 if (!this .isLevelEnabled(level)) { return ; }
+971
+972 logger = BukkitLoggerAdapter.getBukkitLogger();
+973 }
+974
+975
+976 final StringBuilder buf = new StringBuilder(32);
+977 boolean hasHeader = false;
+978
+979
+980
+981 if (marker instanceof ColorMarker) {
+982 buf.append(((ColorMarker) marker).getValue());
+983 } else {
+984 buf.append(BukkitLoggerAdapter.CONFIG_VALUE_LEVEL_COLORS.get(level)
+985 .getValue());
+986 }
+987
+988
+989 if (BukkitLoggerAdapter.CONFIG_VALUE_SHOW_HEADER) {
+990 hasHeader = true ;
+991 buf.append("[SLF4J]" );
+992 }
+993
+994
+995
+996 switch (level) {
+997 case TRACE:
+998 hasHeader = true ;
+999 buf.append("[TRACE]" );
+1000 break ;
+1001 case DEBUG:
+1002 hasHeader = true ;
+1003 buf.append("[DEBUG]" );
+1004 break ;
+1005 default :
+1006 break ;
+1007 }
+1008
+1009
+1010 if (BukkitLoggerAdapter.CONFIG_VALUE_SHOW_THREAD_NAME) {
+1011 hasHeader = true ;
+1012 buf.append('[');
+1013 buf.append(Thread.currentThread().getName());
+1014 buf.append("]" );
+1015 }
+1016
+1017
+1018 if (hasHeader) {
+1019 buf.append(' ');
+1020 }
+1021
+1022
+1023 if (BukkitLoggerAdapter.CONFIG_VALUE_SHOW_LOG_NAME) {
+1024 buf.append('{').append(this .name).append("} " );
+1025 } else if (BukkitLoggerAdapter.CONFIG_VALUE_SHOW_SHORT_LOG_NAME) {
+1026 if (this .shortLogName == null ) {
+1027 this .shortLogName = this .computeShortName();
+1028 }
+1029 buf.append('{').append(this .shortLogName).append("} " );
+1030 }
+1031
+1032
+1033 buf.append(message);
+1034
+1035
+1036 if (throwable != null ) {
+1037 buf.append('\n').append(ExceptionUtils.getFullStackTrace(throwable)
+1038 .trim());
+1039 }
+1040
+1041
+1042 buf.append(ChatColor.RESET);
+1043
+1044
+1045 logger.log(BukkitLoggerAdapter.slf4jLevelIntToBukkitJULLevel(level),
+1046 ColorMapper.map(buf.toString()));
+1047 }
+1048 }
diff --git a/xref/org/slf4j/impl/package-frame.html b/xref/org/slf4j/impl/package-frame.html
index a9e4a8b..3459c8e 100644
--- a/xref/org/slf4j/impl/package-frame.html
+++ b/xref/org/slf4j/impl/package-frame.html
@@ -3,7 +3,7 @@
- SLF4Bukkit 0.1.3 Reference Package org.slf4j.impl
+ SLF4Bukkit 0.1.4 Reference Package org.slf4j.impl
diff --git a/xref/org/slf4j/impl/package-summary.html b/xref/org/slf4j/impl/package-summary.html
index 1735969..ffd74b7 100644
--- a/xref/org/slf4j/impl/package-summary.html
+++ b/xref/org/slf4j/impl/package-summary.html
@@ -3,7 +3,7 @@
- SLF4Bukkit 0.1.3 Reference Package org.slf4j.impl
+ SLF4Bukkit 0.1.4 Reference Package org.slf4j.impl
diff --git a/xref/overview-frame.html b/xref/overview-frame.html
index 9e3bad1..2469cde 100644
--- a/xref/overview-frame.html
+++ b/xref/overview-frame.html
@@ -3,7 +3,7 @@
- SLF4Bukkit 0.1.3 Reference
+ SLF4Bukkit 0.1.4 Reference
diff --git a/xref/overview-summary.html b/xref/overview-summary.html
index 9a5bf99..05b8539 100644
--- a/xref/overview-summary.html
+++ b/xref/overview-summary.html
@@ -3,7 +3,7 @@
- SLF4Bukkit 0.1.3 Reference
+ SLF4Bukkit 0.1.4 Reference
@@ -24,7 +24,7 @@
- SLF4Bukkit 0.1.3 Reference
+ SLF4Bukkit 0.1.4 Reference