Skip to content

Commit 7a5b4a6

Browse files
authored
Add files via upload
1 parent ca1ce51 commit 7a5b4a6

File tree

5 files changed

+94
-0
lines changed

5 files changed

+94
-0
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.mayaha.dp.cor;
2+
3+
public abstract class AbstractLogger {
4+
public static int INFO = 1;
5+
public static int DEBUG = 2;
6+
public static int ERROR = 3;
7+
8+
protected int level;
9+
10+
//责任链中的下一个元素
11+
protected AbstractLogger nextLogger;
12+
13+
public void setNextLogger(AbstractLogger nextLogger){
14+
this.nextLogger = nextLogger;
15+
}
16+
17+
public void logMessage(int level, String message){
18+
if(this.level <= level){
19+
write(message);
20+
}
21+
if(nextLogger !=null){
22+
nextLogger.logMessage(level, message);
23+
}
24+
}
25+
26+
abstract protected void write(String message);
27+
28+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.mayaha.dp.cor;
2+
3+
public class ConsoleLogger extends AbstractLogger {
4+
5+
public ConsoleLogger(int level){
6+
this.level = level;
7+
}
8+
9+
@Override
10+
protected void write(String message) {
11+
System.out.println("Standard Console::Logger: " + message);
12+
}
13+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.mayaha.dp.cor;
2+
3+
public class ErrorLogger extends AbstractLogger {
4+
5+
public ErrorLogger(int level){
6+
this.level = level;
7+
}
8+
9+
@Override
10+
protected void write(String message) {
11+
System.out.println("Error Console::Logger: " + message);
12+
}
13+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.mayaha.dp.cor;
2+
3+
public class FileLogger extends AbstractLogger {
4+
5+
public FileLogger(int level){
6+
this.level = level;
7+
}
8+
9+
@Override
10+
protected void write(String message) {
11+
System.out.println("File::Logger: " + message);
12+
}
13+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.mayaha.dp.cor;
2+
3+
public class Main {
4+
5+
private static AbstractLogger getChainOfLoggers(){
6+
7+
AbstractLogger errorLogger = new ErrorLogger(AbstractLogger.ERROR);
8+
AbstractLogger fileLogger = new FileLogger(AbstractLogger.DEBUG);
9+
AbstractLogger consoleLogger = new ConsoleLogger(AbstractLogger.INFO);
10+
11+
errorLogger.setNextLogger(fileLogger);
12+
fileLogger.setNextLogger(consoleLogger);
13+
14+
return errorLogger;
15+
}
16+
17+
public static void main(String[] args) {
18+
AbstractLogger loggerChain = getChainOfLoggers();
19+
20+
loggerChain.logMessage(AbstractLogger.INFO, "This is an information.");
21+
22+
loggerChain.logMessage(AbstractLogger.DEBUG,"This is a debug level information.");
23+
24+
loggerChain.logMessage(AbstractLogger.ERROR,"This is an error information.");
25+
}
26+
27+
}

0 commit comments

Comments
 (0)