Skip to content

Commit ecb672f

Browse files
author
Francisco Solis
committed
New Log Methods
* Added `Logger#debug` method * Added `Logger#severe(String, Exception)` method
1 parent f903eaf commit ecb672f

File tree

4 files changed

+80
-7
lines changed

4 files changed

+80
-7
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## v0.2.2 - Snapshot
2+
* Added `Logger#debug` method
3+
* Added `Logger#severe(String, Exception)` method
4+
15
## v0.2.1 - Snapshot
26
* Updated Dependencies
37

build.gradle

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import org.apache.tools.ant.filters.ReplaceTokens
22

33
plugins {
4-
id 'org.jetbrains.kotlin.jvm' version '1.6.10'
4+
id 'org.jetbrains.kotlin.jvm' version '1.6.21'
55
id 'maven-publish'
66
id 'com.github.johnrengelman.shadow' version '7.1.2'
7-
id 'org.jetbrains.dokka' version '1.6.0'
7+
id 'org.jetbrains.dokka' version '1.6.21'
88
}
99

10-
def projectVersion = (System.getenv("VERSION") ?: '0.2.1-SNAPSHOT').replaceFirst("v", "").replace('/', '')
10+
def projectVersion = (System.getenv("VERSION") ?: '0.2.2-SNAPSHOT').replaceFirst("v", "").replace('/', '')
1111

1212
group 'xyz.theprogramsrc'
1313
version projectVersion
@@ -26,13 +26,13 @@ repositories {
2626
}
2727

2828
dependencies {
29-
compileOnly 'org.jetbrains.kotlin:kotlin-stdlib:1.6.10'
29+
implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.6.21'
3030
compileOnly 'org.spigotmc:spigot-api:1.18.1-R0.1-SNAPSHOT'
3131
compileOnly 'net.md-5:bungeecord-api:1.18-R0.1-SNAPSHOT'
32-
compileOnly 'xyz.theprogramsrc:simplecoreapi:0.1.12-SNAPSHOT'
32+
compileOnly 'xyz.theprogramsrc:simplecoreapi:0.3.5-SNAPSHOT'
3333

34-
compileOnly 'org.apache.logging.log4j:log4j-api:2.17.1'
35-
compileOnly 'org.apache.logging.log4j:log4j-core:2.17.1'
34+
compileOnly 'org.apache.logging.log4j:log4j-api:2.17.2'
35+
compileOnly 'org.apache.logging.log4j:log4j-core:2.17.2'
3636

3737
testImplementation 'org.junit.jupiter:junit-jupiter:5.8.2'
3838
}

src/main/kotlin/xyz/theprogramsrc/loggingmodule/Logger.kt

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,13 @@ import java.time.LocalDateTime
66
import java.time.format.DateTimeFormatter
77
import java.util.logging.Level
88

9+
/**
10+
* Represents a logger for the logging module.
11+
* @param name The name of the logger
12+
*
13+
* How's this different from other loggers?
14+
* This logger will store the data in isolated folders
15+
*/
916
class Logger(name: String) {
1017

1118
private val javaLogger = java.util.logging.Logger.getLogger(name)
@@ -31,35 +38,81 @@ class Logger(name: String) {
3138
logFile.appendText("[$now] [${level.name}] $message\n")
3239
}
3340

41+
/**
42+
* Logs a message at the [Level.INFO] level.
43+
* @param message The message to log
44+
*/
3445
fun info(message: String){
3546
javaLogger.info(message)
3647
writeToFile(Level.INFO, message)
3748
}
3849

50+
/**
51+
* Logs a message at the [Level.WARNING] level.
52+
* @param message The message to log
53+
*/
3954
fun warning(message: String){
4055
javaLogger.warning(message)
4156
writeToFile(Level.WARNING, message)
4257
}
4358

59+
/**
60+
* Logs a message at the [Level.SEVERE] level.
61+
* @param message The message to log
62+
*/
4463
fun severe(message: String){
4564
javaLogger.severe(message)
4665
writeToFile(Level.SEVERE, message)
4766
}
4867

68+
/**
69+
* Logs a message at the [Level.SEVERE] level with an exception.
70+
* @param message The message to log
71+
* @param exception The throwable to log
72+
*/
73+
fun severe(message: String, exception: Exception) {
74+
val newMessage = "$message\n${Utils.getStackTrace(exception)}"
75+
javaLogger.severe(newMessage)
76+
writeToFile(Level.SEVERE, newMessage)
77+
}
78+
79+
/**
80+
* Logs a message at the [Level.FINE] level.
81+
* @param message The message to log
82+
*/
4983
fun fine(message: String){
5084
javaLogger.fine(message)
5185
writeToFile(Level.FINE, message)
5286
}
5387

88+
/**
89+
* Logs a message at the [Level.FINER] level.
90+
* @param message The message to log
91+
*/
5492
fun finer(message: String){
5593
javaLogger.finer(message)
5694
writeToFile(Level.FINER, message)
5795
}
5896

97+
/**
98+
* Logs a message at the [Level.FINEST] level.
99+
* @param message The message to log
100+
*/
59101
fun finest(message: String){
60102
javaLogger.finest(message)
61103
writeToFile(Level.FINEST, message)
62104
}
63105

106+
/**
107+
* Logs a message at the [Level.ALL] level with the prefix '[DEBUG]'.
108+
* @param message The message to log
109+
*/
110+
fun debug(message: String) {
111+
writeToFile(Level.ALL, "[DEBUG] $message")
112+
if(File(".loggingmodule_debug").exists()) {
113+
javaLogger.log(Level.ALL, "[DEBUG] $message")
114+
}
115+
}
116+
64117

65118
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package xyz.theprogramsrc.loggingmodule
2+
3+
import java.io.PrintWriter
4+
import java.io.StringWriter
5+
6+
object Utils {
7+
8+
private val cache = mutableMapOf<String, String>()
9+
10+
fun getStackTrace(e: Exception): String = cache.computeIfAbsent(e.toString()) {
11+
val sw = StringWriter()
12+
e.printStackTrace(PrintWriter(sw))
13+
sw.toString()
14+
}
15+
16+
}

0 commit comments

Comments
 (0)