Skip to content

Commit

Permalink
Update ActorLogger
Browse files Browse the repository at this point in the history
  • Loading branch information
relvaner committed Jan 31, 2020
1 parent aa2db60 commit 8aed909
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 20 deletions.
2 changes: 1 addition & 1 deletion Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ You can add the following Maven dependency to your pom.xml file:
<dependency>
<groupId>io.actor4j</groupId>
<artifactId>actor4j-core</artifactId>
<version>1.0.1</version>
<version>1.0.2</version>
</dependency>
```

Expand Down
4 changes: 0 additions & 4 deletions src/main/java/io/actor4j/core/ActorSystemImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@
import io.actor4j.core.utils.ActorFactory;
import io.actor4j.core.utils.ActorGroup;
import io.actor4j.core.utils.ActorGroupSet;
import io.actor4j.core.utils.ActorLogger;

import static io.actor4j.core.protocols.ActorProtocolTag.*;
import static io.actor4j.core.utils.ActorUtils.*;
Expand Down Expand Up @@ -160,8 +159,6 @@ public void receive(ActorMessage<?> message) {
// empty
}
}));

ActorLogger.init();
}

protected void reset() {
Expand Down Expand Up @@ -192,7 +189,6 @@ public void postStop() {
countDownLatch.countDown();
}
}));

}

public ActorCell generateCell(Actor actor) {
Expand Down
32 changes: 17 additions & 15 deletions src/main/java/io/actor4j/core/utils/ActorLogger.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@
import org.apache.logging.log4j.core.layout.PatternLayout;

public class ActorLogger {
protected static volatile ActorLogger actorLogger;
protected static final Object lock = new Object();
private static volatile ActorLogger actorLogger;
private static final Object lock = new Object();

protected final LoggerContext loggerContext;
protected final LoggerConfig loggerConfig;
Expand All @@ -43,10 +43,10 @@ private ActorLogger() {
Configuration config = loggerContext.getConfiguration();

Appender consoleAppender = ConsoleAppender.newBuilder()
.setName(CONSOLE_APPENDER_NAME)
.setLayout(PatternLayout.newBuilder().withPattern(LAYOUT_CONSOLE).build())
.setConfiguration(config)
.build();
.setName(CONSOLE_APPENDER_NAME)
.setLayout(PatternLayout.newBuilder().withPattern(LAYOUT_CONSOLE).build())
.setConfiguration(config)
.build();
consoleAppender.start();
AppenderRef[] appenderRefs = new AppenderRef[]{AppenderRef.createAppenderRef(CONSOLE_APPENDER_NAME, null, null)};
loggerConfig = LoggerConfig.createLogger(false, Level.DEBUG, LOGGER_NAME, "true", appenderRefs, null, config, null);
Expand All @@ -57,25 +57,27 @@ private ActorLogger() {
loggerContext.updateLoggers(config);
}

public static void init() {
protected static ActorLogger getInstance() {
// uses Double-Check-Idiom a la Bloch
Object temp = actorLogger;
if (temp==null) {
ActorLogger result = actorLogger;
if (result==null) {
synchronized (lock) {
temp = actorLogger;
if (temp==null) {
actorLogger = new ActorLogger();
result = actorLogger;
if (result==null) {
actorLogger = result = new ActorLogger();
}
}
}

return result;
}

public static Logger logger() {
return actorLogger.loggerContext.getLogger(LOGGER_NAME);
return getInstance().loggerContext.getLogger(LOGGER_NAME);
}

public static void setLevel(Level level) {
actorLogger.loggerConfig.setLevel(level);
actorLogger.loggerContext.updateLoggers();
getInstance().loggerConfig.setLevel(level);
getInstance().loggerContext.updateLoggers();
}
}

0 comments on commit 8aed909

Please sign in to comment.