Skip to content

Commit faa25e3

Browse files
Add max_queue_size
1 parent cfc19cd commit faa25e3

1 file changed

Lines changed: 38 additions & 1 deletion

File tree

ExtFileHandler/src/eu/abra/logging/ExtendedFileHandler.java

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import java.util.Queue;
77
import java.util.concurrent.ConcurrentHashMap;
88
import java.util.concurrent.ConcurrentLinkedQueue;
9+
import java.util.concurrent.LinkedBlockingQueue;
910
import java.util.logging.FileHandler;
1011
import java.util.logging.Filter;
1112
import java.util.logging.Formatter;
@@ -17,7 +18,7 @@
1718

1819
public class ExtendedFileHandler extends Handler {
1920

20-
private Queue<LogRecord> toLogQueue = new ConcurrentLinkedQueue<LogRecord>();
21+
private Queue<LogRecord> toLogQueue;
2122
private FileHandler commonFilehandler;
2223
private Map<String, FileHandler> fileHandlers = new ConcurrentHashMap<String, FileHandler>();
2324
private Writter writter = null;
@@ -27,6 +28,7 @@ public class ExtendedFileHandler extends Handler {
2728
private int count = 1;
2829
private boolean append = false;;
2930
private boolean sysout = false;
31+
private int max_queue_size;
3032
private static final Object lock = new Object();
3133

3234

@@ -162,6 +164,29 @@ private void configure() {
162164
}
163165
sysOut("ExtendedFileHandler count "+count);
164166

167+
val = manager.getProperty(cname + ".max_queue_size");
168+
if (val == null) {
169+
max_queue_size = 0;
170+
} else {
171+
try {
172+
max_queue_size = Integer.parseInt(val.trim());
173+
} catch (Exception ex) {
174+
max_queue_size = 0;
175+
}
176+
}
177+
178+
if (max_queue_size < 0) {
179+
max_queue_size = 0;
180+
}
181+
sysOut("ExtendedFileHandler max_queue_size "+max_queue_size);
182+
183+
if (max_queue_size == 0) {
184+
toLogQueue = new ConcurrentLinkedQueue<LogRecord>();
185+
} else {
186+
toLogQueue = new LinkedBlockingQueue<LogRecord>(max_queue_size);
187+
}
188+
189+
165190
val = manager.getProperty(cname + ".append");
166191
if (val == null) {
167192
append = false;
@@ -230,6 +255,7 @@ public ExtendedFileHandler() throws IOException, SecurityException {
230255
private void startWritter() {
231256
writter = new Writter("ExtendedFileHandler - async log writter");
232257
writter.setDaemon(true);
258+
writter.setPriority(Thread.NORM_PRIORITY+1);
233259
writter.start();
234260
sysOut("ExtendedFileHandler Writter started");
235261
}
@@ -278,6 +304,17 @@ public ExtendedFileHandler(String pattern, long limit, int count, boolean append
278304
startWritter();
279305
}
280306

307+
public ExtendedFileHandler(String pattern, long limit, int count, boolean append, int maxQueueSize) {
308+
sysOut("ExtendedFileHandler C6");
309+
configure();
310+
this.pattern = pattern;
311+
this.limit = limit;
312+
this.count = count;
313+
this.append = append;
314+
this.max_queue_size = maxQueueSize;
315+
startWritter();
316+
}
317+
281318
// public ExtendedFileHandler(String pattern, long limit, int count, boolean append, boolean separateEachThread) {
282319
// sysOut("ExtendedFileHandler C6");
283320
// configure();

0 commit comments

Comments
 (0)