mirror of
https://github.com/fabioformosa/quartz-manager.git
synced 2026-01-04 00:23:19 +09:00
Added thread name in log record
This commit is contained in:
@@ -26,8 +26,7 @@ public class SchedulerController {
|
||||
private static final int MILLS_IN_A_DAY = 1000 * 60 * 60 * 24;
|
||||
private static final int SEC_IN_A_DAY = 60 * 60 * 24;
|
||||
|
||||
private final Logger log = LoggerFactory
|
||||
.getLogger(SchedulerController.class);
|
||||
private final Logger log = LoggerFactory.getLogger(SchedulerController.class);
|
||||
|
||||
@Resource
|
||||
private Scheduler scheduler;
|
||||
@@ -53,16 +52,14 @@ public class SchedulerController {
|
||||
SchedulerConfigParam config = new SchedulerConfigParam();
|
||||
config.setMaxCount(jobTrigger.getRepeatCount() + 1);
|
||||
long repeatIntervalInMills = jobTrigger.getRepeatInterval();
|
||||
config.setTriggerPerDay(
|
||||
fromMillsIntervalToTriggerPerDay(repeatIntervalInMills));
|
||||
config.setTriggerPerDay(fromMillsIntervalToTriggerPerDay(repeatIntervalInMills));
|
||||
return config;
|
||||
}
|
||||
|
||||
@RequestMapping("/progress")
|
||||
public TriggerProgress getProgressInfo() throws SchedulerException {
|
||||
|
||||
SimpleTriggerImpl jobTrigger = ((SimpleTriggerImpl) scheduler
|
||||
.getTrigger(this.jobTrigger.getKey()));
|
||||
SimpleTriggerImpl jobTrigger = ((SimpleTriggerImpl) scheduler.getTrigger(this.jobTrigger.getKey()));
|
||||
|
||||
TriggerProgress progress = new TriggerProgress();
|
||||
if (jobTrigger != null && jobTrigger.getJobKey() != null) {
|
||||
@@ -83,19 +80,14 @@ public class SchedulerController {
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/config", method = RequestMethod.POST)
|
||||
public SchedulerConfigParam postConfig(
|
||||
@RequestBody SchedulerConfigParam config)
|
||||
public SchedulerConfigParam postConfig(@RequestBody SchedulerConfigParam config)
|
||||
throws SchedulerException {
|
||||
|
||||
TriggerBuilder<SimpleTrigger> triggerBuilder = jobTrigger
|
||||
.getTriggerBuilder();
|
||||
TriggerBuilder<SimpleTrigger> triggerBuilder = jobTrigger.getTriggerBuilder();
|
||||
|
||||
int intervalInSeconds = fromTriggerPerDayToMillSecInterval(
|
||||
config.getTriggerPerDay());
|
||||
Trigger newTrigger = triggerBuilder
|
||||
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
|
||||
.withIntervalInMilliseconds(intervalInSeconds)
|
||||
.withRepeatCount(config.getMaxCount() - 1))
|
||||
int intervalInSeconds = fromTriggerPerDayToMillSecInterval(config.getTriggerPerDay());
|
||||
Trigger newTrigger = triggerBuilder.withSchedule(SimpleScheduleBuilder.simpleSchedule()
|
||||
.withIntervalInMilliseconds(intervalInSeconds).withRepeatCount(config.getMaxCount() - 1))
|
||||
.build();
|
||||
|
||||
scheduler.rescheduleJob(jobTrigger.getKey(), newTrigger);
|
||||
|
||||
@@ -15,8 +15,7 @@ import it.fabioformosa.quartzmanager.jobs.entities.LogRecord;
|
||||
|
||||
public abstract class AbstractLoggingJob implements Job {
|
||||
|
||||
private static final Logger log = LoggerFactory
|
||||
.getLogger(AbstractLoggingJob.class);
|
||||
private static final Logger log = LoggerFactory.getLogger(AbstractLoggingJob.class);
|
||||
|
||||
@Autowired
|
||||
private SimpMessageSendingOperations messagingTemplate;
|
||||
@@ -44,6 +43,7 @@ public abstract class AbstractLoggingJob implements Job {
|
||||
|
||||
public void logAndSend(LogRecord logRecord) {
|
||||
log.info(logRecord.getMessage());
|
||||
logRecord.setThreadName(Thread.currentThread().getName());
|
||||
messagingTemplate.convertAndSend("/topic/logs", logRecord);
|
||||
}
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ public class LogRecord {
|
||||
private LogType type;
|
||||
|
||||
private String message;
|
||||
private String threadName;
|
||||
|
||||
public LogRecord(LogType type, String msg) {
|
||||
super();
|
||||
@@ -28,6 +29,10 @@ public class LogRecord {
|
||||
return message;
|
||||
}
|
||||
|
||||
public String getThreadName() {
|
||||
return threadName;
|
||||
}
|
||||
|
||||
public LogType getType() {
|
||||
return type;
|
||||
}
|
||||
@@ -40,14 +45,17 @@ public class LogRecord {
|
||||
message = msg;
|
||||
}
|
||||
|
||||
public void setThreadName(String threadName) {
|
||||
this.threadName = threadName;
|
||||
}
|
||||
|
||||
public void setType(LogType type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "LogRecord [date=" + date + ", type=" + type + ", message="
|
||||
+ message + "]";
|
||||
return "LogRecord [date=" + date + ", type=" + type + ", message=" + message + "]";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ angular.module('progress')
|
||||
logItem.time = logRecord.date;
|
||||
logItem.type = logRecord.type;
|
||||
logItem.msg = logRecord.message;
|
||||
logItem.threadName = logRecord.threadName;
|
||||
|
||||
$scope.logs.unshift(logItem);
|
||||
})
|
||||
|
||||
@@ -1,16 +1,21 @@
|
||||
<div id="logs">
|
||||
<div class="row" data-ng-repeat="log in logs">
|
||||
<div class="col-xs-3">
|
||||
<div class="col-xs-2">
|
||||
<span data-ng-class="{'animated zoomIn firstLog': $first}"> [{{log.time|date:'medium'}}]</span>
|
||||
</div>
|
||||
<div class="col-xs-2">
|
||||
<div class="col-xs-1">
|
||||
<span data-ng-class="{'animated zoomIn firstLog': $first}">
|
||||
<i data-ng-class="{'fa fa-check-circle green': log.type == 'INFO',
|
||||
'fa fa-exclamation-triangle dark-yellow': log.type == 'WARN',
|
||||
'fa fa-times-circle red': log.type == 'ERROR'}"></i>
|
||||
</span>
|
||||
</div>
|
||||
<div class="col-xs-7">
|
||||
<div class="col-xs-3">
|
||||
<span data-ng-class="{'animated zoomIn firstLog': $first}">
|
||||
{{log.threadName}}
|
||||
</span>
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
<span data-ng-class="{'animated zoomIn firstLog': $first}"> {{log.msg}}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user