提交 13a252b2 编写于 作者: Z zhourui

修改日志处理

上级 93911135
...@@ -68,7 +68,7 @@ public class LogQueue extends AbstractQueue<NameValuePair> { ...@@ -68,7 +68,7 @@ public class LogQueue extends AbstractQueue<NameValuePair> {
do { do {
try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) { try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
Calendar threshold = Calendar.getInstance(); Calendar threshold = Calendar.getInstance();
threshold.add(Calendar.DATE, -5); threshold.add(Calendar.DATE, -7);
ids = emc.idsLessThanMax(cls, JpaObject.createTime_FIELDNAME, threshold.getTime(), 500); ids = emc.idsLessThanMax(cls, JpaObject.createTime_FIELDNAME, threshold.getTime(), 500);
if (!ids.isEmpty()) { if (!ids.isEmpty()) {
emc.beginTransaction(cls); emc.beginTransaction(cls);
......
...@@ -16,6 +16,7 @@ import org.quartz.JobExecutionException; ...@@ -16,6 +16,7 @@ import org.quartz.JobExecutionException;
import com.x.base.core.container.EntityManagerContainer; import com.x.base.core.container.EntityManagerContainer;
import com.x.base.core.container.factory.EntityManagerContainerFactory; import com.x.base.core.container.factory.EntityManagerContainerFactory;
import com.x.base.core.entity.JpaObject_;
import com.x.base.core.project.config.Config; import com.x.base.core.project.config.Config;
import com.x.base.core.project.connection.ActionResponse; import com.x.base.core.project.connection.ActionResponse;
import com.x.base.core.project.connection.ConnectionAction; import com.x.base.core.project.connection.ConnectionAction;
...@@ -38,58 +39,16 @@ public class CollectLog extends BaseAction { ...@@ -38,58 +39,16 @@ public class CollectLog extends BaseAction {
@Override @Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
try { try {
if (pirmaryCenter()) { if (pirmaryCenter() && BooleanUtils.isTrue(Config.collect().getEnable())) {
try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) { try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
if (BooleanUtils.isTrue(Config.collect().getEnable())) { Business business = new Business(emc);
Business business = new Business(emc); if (BooleanUtils.isNotTrue(business.validateCollect())) {
if (business.validateCollect()) { logger.warn("login cloud server failure.");
List<PromptErrorLog> os_promptErrorLog = this.list_promptErrorLog(emc);
List<UnexpectedErrorLog> os_unexpectedErrorLog = this.list_unexpectedErrorLog(emc);
List<WarnLog> os_warnLog = this.list_warnLog(emc);
if (!os_promptErrorLog.isEmpty()) {
Req req = new Req();
req.setName(Config.collect().getName());
req.setPassword(Config.collect().getPassword());
req.setPromptErrorLogList(os_promptErrorLog);
try {
ActionResponse response = ConnectionAction
.put(Config.collect().url(ADDRESS_COLLECT_PROMPTERRORLOG), null, req);
response.getData(WrapOutBoolean.class);
} catch (Exception e) {
e.printStackTrace();
}
}
if (!os_unexpectedErrorLog.isEmpty()) {
Req req = new Req();
req.setName(Config.collect().getName());
req.setPassword(Config.collect().getPassword());
req.setUnexceptedErrorLog(os_unexpectedErrorLog);
try {
ActionResponse response = ConnectionAction
.put(Config.collect().url(ADDRESS_COLLECT_UNEXPECTEDERRORLOG), null, req);
response.getData(WrapOutBoolean.class);
} catch (Exception e) {
e.printStackTrace();
}
}
if (!os_warnLog.isEmpty()) {
Req req = new Req();
req.setName(Config.collect().getName());
req.setPassword(Config.collect().getPassword());
req.setWarnLogList(os_warnLog);
try {
ActionResponse response = ConnectionAction
.put(Config.collect().url(ADDRESS_COLLECT_WARNLOG), null, req);
response.getData(WrapOutBoolean.class);
} catch (Exception e) {
e.printStackTrace();
}
}
} else {
logger.info("无法登录到云服务器.");
}
} }
} }
this.collectPromptErrorLog();
this.collectUnexpectedErrorLog();
this.collectWarnLog();
} }
} catch (Exception e) { } catch (Exception e) {
logger.error(e); logger.error(e);
...@@ -97,12 +56,70 @@ public class CollectLog extends BaseAction { ...@@ -97,12 +56,70 @@ public class CollectLog extends BaseAction {
} }
} }
private void collectPromptErrorLog() throws Exception {
try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
List<PromptErrorLog> list = this.listPromptErrorLog(emc);
if (!list.isEmpty()) {
Req req = new Req();
req.setName(Config.collect().getName());
req.setPassword(Config.collect().getPassword());
req.setPromptErrorLogList(list);
try {
ActionResponse response = ConnectionAction.put(Config.collect().url(ADDRESS_COLLECT_PROMPTERRORLOG),
null, req);
response.getData(WrapOutBoolean.class);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
private void collectUnexpectedErrorLog() throws Exception {
try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
List<UnexpectedErrorLog> list = this.listUnexpectedErrorLog(emc);
if (!list.isEmpty()) {
Req req = new Req();
req.setName(Config.collect().getName());
req.setPassword(Config.collect().getPassword());
req.setUnexpectedErrorLogList(list);
try {
ActionResponse response = ConnectionAction
.put(Config.collect().url(ADDRESS_COLLECT_UNEXPECTEDERRORLOG), null, req);
response.getData(WrapOutBoolean.class);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
private void collectWarnLog() throws Exception {
try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
List<WarnLog> list = this.listWarnLog(emc);
if (!list.isEmpty()) {
Req req = new Req();
req.setName(Config.collect().getName());
req.setPassword(Config.collect().getPassword());
req.setWarnLogList(list);
try {
ActionResponse response = ConnectionAction.put(Config.collect().url(ADDRESS_COLLECT_WARNLOG), null,
req);
response.getData(WrapOutBoolean.class);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
public static class Req extends GsonPropertyObject { public static class Req extends GsonPropertyObject {
private static final long serialVersionUID = 2018703062822498687L;
private String name; private String name;
private String password; private String password;
private List<PromptErrorLog> promptErrorLogList = new ArrayList<>(); private List<PromptErrorLog> promptErrorLogList = new ArrayList<>();
private List<UnexpectedErrorLog> unexceptedErrorLog = new ArrayList<>(); private List<UnexpectedErrorLog> unexpectedErrorLogList = new ArrayList<>();
private List<WarnLog> warnLogList = new ArrayList<>(); private List<WarnLog> warnLogList = new ArrayList<>();
public String getName() { public String getName() {
...@@ -137,27 +154,28 @@ public class CollectLog extends BaseAction { ...@@ -137,27 +154,28 @@ public class CollectLog extends BaseAction {
this.warnLogList = warnLogList; this.warnLogList = warnLogList;
} }
public List<UnexpectedErrorLog> getUnexceptedErrorLog() { public List<UnexpectedErrorLog> getUnexpectedErrorLogList() {
return unexceptedErrorLog; return unexpectedErrorLogList;
} }
public void setUnexceptedErrorLog(List<UnexpectedErrorLog> unexceptedErrorLog) { public void setUnexpectedErrorLogList(List<UnexpectedErrorLog> unexpectedErrorLogList) {
this.unexceptedErrorLog = unexceptedErrorLog; this.unexpectedErrorLogList = unexpectedErrorLogList;
} }
} }
private List<PromptErrorLog> list_promptErrorLog(EntityManagerContainer emc) throws Exception { private List<PromptErrorLog> listPromptErrorLog(EntityManagerContainer emc) throws Exception {
EntityManager em = emc.get(PromptErrorLog.class); EntityManager em = emc.get(PromptErrorLog.class);
CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<PromptErrorLog> cq = cb.createQuery(PromptErrorLog.class); CriteriaQuery<PromptErrorLog> cq = cb.createQuery(PromptErrorLog.class);
Root<PromptErrorLog> root = cq.from(PromptErrorLog.class); Root<PromptErrorLog> root = cq.from(PromptErrorLog.class);
Calendar cal = Calendar.getInstance(); Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, -1); cal.add(Calendar.DAY_OF_MONTH, -1);
Predicate p = cb.greaterThan(root.get(PromptErrorLog_.createTime), cal.getTime()); Predicate p = cb.greaterThan(root.get(JpaObject_.createTime), cal.getTime());
p = cb.and(p, cb.notEqual(root.get(PromptErrorLog_.collected), true)); p = cb.and(p, cb.or(cb.notEqual(root.get(PromptErrorLog_.collected), true),
cq.select(root).where(p).orderBy(cb.desc(root.get(PromptErrorLog_.createTime))); cb.isNull(root.get(PromptErrorLog_.collected))));
List<PromptErrorLog> list = em.createQuery(cq).setMaxResults(10).getResultList(); cq.select(root).where(p).orderBy(cb.desc(root.get(JpaObject_.createTime)));
List<PromptErrorLog> list = em.createQuery(cq).setMaxResults(20).getResultList();
if (!list.isEmpty()) { if (!list.isEmpty()) {
emc.beginTransaction(PromptErrorLog.class); emc.beginTransaction(PromptErrorLog.class);
for (PromptErrorLog o : list) { for (PromptErrorLog o : list) {
...@@ -168,17 +186,18 @@ public class CollectLog extends BaseAction { ...@@ -168,17 +186,18 @@ public class CollectLog extends BaseAction {
return list; return list;
} }
private List<UnexpectedErrorLog> list_unexpectedErrorLog(EntityManagerContainer emc) throws Exception { private List<UnexpectedErrorLog> listUnexpectedErrorLog(EntityManagerContainer emc) throws Exception {
EntityManager em = emc.get(UnexpectedErrorLog.class); EntityManager em = emc.get(UnexpectedErrorLog.class);
CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<UnexpectedErrorLog> cq = cb.createQuery(UnexpectedErrorLog.class); CriteriaQuery<UnexpectedErrorLog> cq = cb.createQuery(UnexpectedErrorLog.class);
Root<UnexpectedErrorLog> root = cq.from(UnexpectedErrorLog.class); Root<UnexpectedErrorLog> root = cq.from(UnexpectedErrorLog.class);
Calendar cal = Calendar.getInstance(); Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, -1); cal.add(Calendar.DAY_OF_MONTH, -1);
Predicate p = cb.greaterThan(root.get(UnexpectedErrorLog_.createTime), cal.getTime()); Predicate p = cb.greaterThan(root.get(JpaObject_.createTime), cal.getTime());
p = cb.and(p, cb.notEqual(root.get(UnexpectedErrorLog_.collected), true)); p = cb.and(p, cb.or(cb.notEqual(root.get(UnexpectedErrorLog_.collected), true),
cq.select(root).where(p).orderBy(cb.desc(root.get(UnexpectedErrorLog_.createTime))); cb.isNull(root.get(UnexpectedErrorLog_.collected))));
List<UnexpectedErrorLog> list = em.createQuery(cq).setMaxResults(10).getResultList(); cq.select(root).where(p).orderBy(cb.desc(root.get(JpaObject_.createTime)));
List<UnexpectedErrorLog> list = em.createQuery(cq).setMaxResults(20).getResultList();
if (!list.isEmpty()) { if (!list.isEmpty()) {
emc.beginTransaction(UnexpectedErrorLog.class); emc.beginTransaction(UnexpectedErrorLog.class);
for (UnexpectedErrorLog o : list) { for (UnexpectedErrorLog o : list) {
...@@ -189,17 +208,17 @@ public class CollectLog extends BaseAction { ...@@ -189,17 +208,17 @@ public class CollectLog extends BaseAction {
return list; return list;
} }
private List<WarnLog> list_warnLog(EntityManagerContainer emc) throws Exception { private List<WarnLog> listWarnLog(EntityManagerContainer emc) throws Exception {
EntityManager em = emc.get(WarnLog.class); EntityManager em = emc.get(WarnLog.class);
CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<WarnLog> cq = cb.createQuery(WarnLog.class); CriteriaQuery<WarnLog> cq = cb.createQuery(WarnLog.class);
Root<WarnLog> root = cq.from(WarnLog.class); Root<WarnLog> root = cq.from(WarnLog.class);
Calendar cal = Calendar.getInstance(); Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_MONTH, -1); cal.add(Calendar.DAY_OF_MONTH, -1);
Predicate p = cb.greaterThan(root.get(WarnLog_.createTime), cal.getTime()); Predicate p = cb.greaterThan(root.get(JpaObject_.createTime), cal.getTime());
p = cb.and(p, cb.notEqual(root.get(WarnLog_.collected), true)); p = cb.and(p, cb.or(cb.notEqual(root.get(WarnLog_.collected), true), cb.isNull(root.get(WarnLog_.collected))));
cq.select(root).where(p).orderBy(cb.desc(root.get(WarnLog_.createTime))); cq.select(root).where(p).orderBy(cb.desc(root.get(JpaObject_.createTime)));
List<WarnLog> list = em.createQuery(cq).setMaxResults(10).getResultList(); List<WarnLog> list = em.createQuery(cq).setMaxResults(20).getResultList();
if (!list.isEmpty()) { if (!list.isEmpty()) {
emc.beginTransaction(WarnLog.class); emc.beginTransaction(WarnLog.class);
for (WarnLog o : list) { for (WarnLog o : list) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册