Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move the log4j classes to core. Thanks to @MarcMil. #194

Merged
merged 2 commits into from
Dec 9, 2020
Merged
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
15 changes: 15 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,9 @@
<commons-lang-version>2.1</commons-lang-version>
<commons-logging-version>1.1.1</commons-logging-version>
<slf4j-version>1.7.2</slf4j-version>
<!-- yes we know this is an issue but it is here for backwards compatibility -->
<log4j-version>1.2.17</log4j-version>
<log4j2-version>2.0-beta4</log4j2-version>
</properties>
<profiles>
<profile>
Expand Down Expand Up @@ -390,6 +393,18 @@
<version>${commons-logging-version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j-version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>${log4j2-version}</version>
<scope>provided</scope>
</dependency>

<!-- test dependencies -->
<dependency>
Expand Down
91 changes: 91 additions & 0 deletions src/main/java/com/j256/ormlite/logger/Log4j2Log.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
package com.j256.ormlite.logger;

import com.j256.ormlite.logger.Log;

/**
* Class which implements our {@link com.j256.ormlite.logger.Log} interface by delegating to Apache Log4j2.
*
* @author graywatson
*/
public class Log4j2Log implements Log {

private final org.apache.logging.log4j.Logger logger;

public Log4j2Log(String className) {
this.logger = org.apache.logging.log4j.LogManager.getLogger(className);
}

@Override
public boolean isLevelEnabled(Level level) {
switch (level) {
case TRACE:
return logger.isTraceEnabled();
case DEBUG:
return logger.isDebugEnabled();
case INFO:
return logger.isInfoEnabled();
case WARNING:
return logger.isWarnEnabled();
case ERROR:
return logger.isErrorEnabled();
case FATAL:
return logger.isFatalEnabled();
default:
return logger.isInfoEnabled();
}
}

@Override
public void log(Level level, String msg) {
switch (level) {
case TRACE:
logger.trace(msg);
break;
case DEBUG:
logger.debug(msg);
break;
case INFO:
logger.info(msg);
break;
case WARNING:
logger.warn(msg);
break;
case ERROR:
logger.error(msg);
break;
case FATAL:
logger.fatal(msg);
break;
default:
logger.info(msg);
break;
}
}

@Override
public void log(Level level, String msg, Throwable t) {
switch (level) {
case TRACE:
logger.trace(msg, t);
break;
case DEBUG:
logger.debug(msg, t);
break;
case INFO:
logger.info(msg, t);
break;
case WARNING:
logger.warn(msg, t);
break;
case ERROR:
logger.error(msg, t);
break;
case FATAL:
logger.fatal(msg, t);
break;
default:
logger.info(msg, t);
break;
}
}
}
51 changes: 51 additions & 0 deletions src/main/java/com/j256/ormlite/logger/Log4jLog.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package com.j256.ormlite.logger;

import com.j256.ormlite.logger.Log;

/**
* Class which implements our {@link com.j256.ormlite.logger.Log} interface by delegating to Apache Log4j.
*
* @author graywatson
*/
public class Log4jLog implements Log {

private final org.apache.log4j.Logger logger;

public Log4jLog(String className) {
this.logger = org.apache.log4j.Logger.getLogger(className);
}

@Override
public boolean isLevelEnabled(Level level) {
return logger.isEnabledFor(levelToLog4jLevel(level));
}

@Override
public void log(Level level, String msg) {
logger.log(levelToLog4jLevel(level), msg);
}

@Override
public void log(Level level, String msg, Throwable t) {
logger.log(levelToLog4jLevel(level), msg, t);
}

private org.apache.log4j.Level levelToLog4jLevel(com.j256.ormlite.logger.Log.Level level) {
switch (level) {
case TRACE:
return org.apache.log4j.Level.TRACE;
case DEBUG:
return org.apache.log4j.Level.DEBUG;
case INFO:
return org.apache.log4j.Level.INFO;
case WARNING:
return org.apache.log4j.Level.WARN;
case ERROR:
return org.apache.log4j.Level.ERROR;
case FATAL:
return org.apache.log4j.Level.FATAL;
default:
return org.apache.log4j.Level.INFO;
}
}
}
1 change: 1 addition & 0 deletions src/main/javadoc/doc-files/changelog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
* JDBC: Update the DB2 driver class. Thanks to mauro-palumbo.
* JDBC: Added support for create table if not exists for HSQLDB versions 2.3.X and greater. Thanks to lukewhitt.
* JDBC: Fixed a problem with H2's handling of boolean fields.
* JDBC: Fixed the log4j logger classes broken in 5.2. Also moved them over to core. Thanks to MarcMil.

5.2: 11/14/2020
* JDBC: Refactored the JDBC package to make it java9 compliant by moving all classes under jdbc subpackage.
Expand Down
8 changes: 8 additions & 0 deletions src/test/java/com/j256/ormlite/logger/Log4jLogTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.j256.ormlite.logger;

public class Log4jLogTest extends BaseLogTest {

public Log4jLogTest() {
super(new Log4jLog("Log4jLogTest"));
}
}
9 changes: 5 additions & 4 deletions src/test/java/com/j256/ormlite/logger/LoggerFactoryTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,8 @@ public void testConstructor() throws Exception {
public void testLogTypeIsAvailable() {
assertFalse(LoggerFactory.LogType.ANDROID.isAvailable());
assertTrue(LoggerFactory.LogType.COMMONS_LOGGING.isAvailable());
assertFalse(LoggerFactory.LogType.LOG4J.isAvailable());
assertTrue(LoggerFactory.LogType.LOG4J.isAvailable());
assertTrue(LoggerFactory.LogType.LOG4J2.isAvailable());
assertTrue(LoggerFactory.LogType.LOCAL.isAvailable());
assertTrue(LoggerFactory.LogType.LOCAL.isAvailableTestClass());
}
Expand All @@ -48,9 +49,9 @@ public void testLogTypeUnknownLog() {
log = LoggerFactory.LogType.COMMONS_LOGGING.createLog(getClass().getName());
assertTrue(log instanceof CommonsLoggingLog);
log = LoggerFactory.LogType.LOG4J.createLog(getClass().getName());
assertTrue(log instanceof LocalLog);
log = LoggerFactory.LogType.LOG4J.createLog(getClass().getName());
assertTrue(log instanceof LocalLog);
assertTrue(log instanceof Log4jLog);
log = LoggerFactory.LogType.LOG4J2.createLog(getClass().getName());
assertTrue(log instanceof Log4j2Log);
log = LoggerFactory.LogType.LOCAL.createLog(getClass().getName());
assertTrue(log instanceof LocalLog);
log = LoggerFactory.LogType.LOCAL.createLog(getClass().getName());
Expand Down