@Override protected void writeEntityBody(LogEntry logEntry, JsonGenerator jg) throws IOException { jg.writeNumberField(LOG_ID, logEntry.getId()); jg.writeStringField(LOG_CATEGORY, logEntry.getCategory()); jg.writeStringField(LOG_PRINCIPAL_NAME, logEntry.getPrincipalName()); jg.writeStringField(LOG_COMMENT, logEntry.getComment()); jg.writeStringField(LOG_DOC_LIFE_CYCLE, logEntry.getDocLifeCycle()); jg.writeStringField(LOG_DOC_PATH, logEntry.getDocPath()); jg.writeStringField(LOG_DOC_TYPE, logEntry.getDocType()); jg.writeStringField(LOG_DOC_UUID, logEntry.getDocUUID()); jg.writeStringField(LOG_EVENT_ID, logEntry.getEventId()); jg.writeStringField(LOG_REPOSITORY_ID, logEntry.getRepositoryId()); DateTimeFormatter dateTime = ISODateTimeFormat.dateTime(); jg.writeStringField(LOG_EVENT_DATE, dateTime.print(new DateTime(logEntry.getEventDate()))); jg.writeStringField(LOG_LOG_DATE, dateTime.print(new DateTime(logEntry.getLogDate()))); writeExtendedInfos(jg, logEntry); }
private Date getCreationDateForVersion(Logs logsService, DocumentModel version) { List<LogEntry> logs = logsService.getLogEntriesFor(version.getId(), filterMap, true); for (LogEntry logEntry : logs) { if (logEntry.getEventId().equals(DocumentEventTypes.DOCUMENT_CREATED)) { return logEntry.getEventDate(); } } return null; }
protected List<LogEntry> preprocessAuditEntries(List<LogEntry> auditEntries, CoreSession session, String lang) throws MissingResourceException { CommentProcessorHelper helper = new CommentProcessorHelper(session); for (LogEntry entry : auditEntries) { String comment = helper.getLogComment(entry); if (comment == null) { comment = ""; } else { String i18nComment = I18NUtils.getMessageString("messages", comment, null, new Locale(lang)); if (i18nComment != null) { comment = i18nComment; } } String eventId = entry.getEventId(); String i18nEventId = I18NUtils.getMessageString("messages", eventId, null, new Locale(lang)); if (i18nEventId != null) { entry.setEventId(i18nEventId); } entry.setComment(comment); } return auditEntries; } }
Collection<ExtendedInfoDescriptor> extInfos) { if (extInfos != null) { Map<String, ExtendedInfo> extendedInfos = entry.getExtendedInfos(); for (ExtendedInfoDescriptor descriptor : extInfos) { String exp = descriptor.getExpression(); if (!DocumentEventTypes.DOCUMENT_REMOVED.equals(entry.getEventId())) { log.error("Not found: {}, entry: {}", e.getMessage(), entry, e);
protected long getTimestampForEntry(LogEntry entry) { if (entry.getEventDate() != null) { return entry.getEventDate().getTime(); } return System.currentTimeMillis(); }
for (int i = 0; i < entries.size(); i++) { LogEntry entry = entries.get(i); entry.setId(block.get(i)); if (log.isDebugEnabled()) { log.debug(String.format("Indexing log entry: %s", entry)); entry.setLogDate(new Date()); try (OutputStream out = new BytesStreamOutput(); // mapper.writeValue(jg, entry); bulkRequest.add(new IndexRequest(getESIndexName(), ElasticSearchConstants.ENTRY_TYPE, String.valueOf(entry.getId())).source(builder));
protected String asJson(LogEntry entry) { if (entry == null) { return null; } RenderingContext ctx = RenderingContext.CtxBuilder.get(); try { return MarshallerHelper.objectToJson(entry, ctx); } catch (IOException e) { log.warn("Unable to translate entry into json, eventId:" + entry.getEventId() + ": " + e.getMessage(), e); return null; } }
public void append(List<LogEntry> entries) { entries.forEach(e -> { if (em.contains(e)) { log.warn("Log entry already exists for id " + e.getId()); } em.merge(e); }); }
@Override public IOResources loadResourcesFromXML(InputStream stream) { List<LogEntry> allEntries; try { allEntries = IOLogEntryBase.read(stream); } catch (IOException e) { throw new NuxeoException("Cannot read entries from " + stream); } // will put each log entry to its correspondent document ref Map<DocumentRef, List<LogEntry>> docLogs = new HashMap<DocumentRef, List<LogEntry>>(); for (LogEntry logEntry : allEntries) { DocumentRef docRef = new IdRef(logEntry.getDocUUID()); List<LogEntry> logEntries = docLogs.get(docRef); if (logEntries == null) { logEntries = new ArrayList<LogEntry>(); docLogs.put(docRef, logEntries); } logEntries.add(logEntry); } return new IOAuditResources(docLogs); }
try (Session userDir = directoryService.open(um.getUserDirectoryName(), null)) { for (LogEntry e : entries) { String id = (String) e.getExtendedInfos().get("id").getSerializableValue(); if (StringUtils.isNotBlank(id)) { DocumentModel doc; if (UserManagerImpl.GROUPCREATED_EVENT_ID.equals(e.getEventId())) { doc = um.getGroupModel(id); } else if (UserManagerImpl.USERCREATED_EVENT_ID.equals(e.getEventId())) { doc = um.getUserModel(id); } else {
/** * Query the audit for an entry of the Routing category matching the given event and returns the time elapsed since it is recorded. * * @since 7.4 */ public static long computeElapsedTime(DocumentRoutingConstants.Events event, String elementId) { Logs logs = Framework.getService(Logs.class); if (logs != null && StringUtils.isNotBlank(elementId)) { Map<String, FilterMapEntry> filterMap = new HashMap<>(); FilterMapEntry categoryFilterMapEntry = new FilterMapEntry(); categoryFilterMapEntry.setColumnName(BuiltinLogEntryData.LOG_CATEGORY); categoryFilterMapEntry.setOperator("="); categoryFilterMapEntry.setQueryParameterName(BuiltinLogEntryData.LOG_CATEGORY); categoryFilterMapEntry.setObject(DocumentRoutingConstants.ROUTING_CATEGORY); filterMap.put(BuiltinLogEntryData.LOG_CATEGORY, categoryFilterMapEntry); FilterMapEntry eventIdFilterMapEntry = new FilterMapEntry(); eventIdFilterMapEntry.setColumnName(BuiltinLogEntryData.LOG_EVENT_ID); eventIdFilterMapEntry.setOperator("="); eventIdFilterMapEntry.setQueryParameterName(BuiltinLogEntryData.LOG_EVENT_ID); eventIdFilterMapEntry.setObject(event.name()); filterMap.put(BuiltinLogEntryData.LOG_EVENT_ID, eventIdFilterMapEntry); List<LogEntry> logEntries = logs.getLogEntriesFor(elementId, filterMap, true); if (logEntries.size() > 0) { LogEntry logEntry = logEntries.get(0); Date start = logEntry.getEventDate(); return new Date().getTime() - start.getTime(); } } return -1; }
/** * Post-process log entries comments to add links. e5e7b4ba-0ffb-492d-8bf2-f2f2e6683ae2 */ private void postProcessComments(List<LogEntry> logEntries) { logEntriesComments = new HashMap<Long, String>(); logEntriesLinkedDocs = new HashMap<Long, LinkedDocument>(); CommentProcessorHelper cph = new CommentProcessorHelper(documentManager); if (logEntries == null) { return; } for (LogEntry entry : logEntries) { logEntriesComments.put(entry.getId(), cph.getLogComment(entry)); LinkedDocument linkedDoc = cph.getLogLinkedDocument(entry); if (linkedDoc != null) { logEntriesLinkedDocs.put(entry.getId(), linkedDoc); } } }
@Override protected void writeEntityBody(JsonGenerator jg, LogEntry logEntry) throws IOException { jg.writeStringField("entity-type", "logEntry"); jg.writeStringField("category", logEntry.getCategory()); jg.writeStringField("principalName", logEntry.getPrincipalName()); jg.writeStringField("comment", logEntry.getComment()); jg.writeStringField("docLifeCycle", logEntry.getDocLifeCycle()); jg.writeStringField("docPath", logEntry.getDocPath()); jg.writeStringField("docType", logEntry.getDocType()); jg.writeStringField("docUUID", logEntry.getDocUUID()); jg.writeStringField("eventId", logEntry.getEventId()); jg.writeStringField("repositoryId", logEntry.getRepositoryId()); jg.writeStringField("eventDate", ISODateTimeFormat.dateTime().print(new DateTime(logEntry.getEventDate()))); jg.writeNumberField("id", logEntry.getId()); jg.writeStringField("logDate", ISODateTimeFormat.dateTime().print(new DateTime(logEntry.getLogDate()))); writeExtendedInfos(jg, logEntry); }
component.getEventExtendedInfoDescriptors().get(entry.getEventId())); Map<String, Serializable> map = (Map<String, Serializable>) eventContext.getProperty("extendedInfos"); if (map != null) { Map<String, ExtendedInfo> extendedInfos = entry.getExtendedInfos(); for (Entry<String, Serializable> en : map.entrySet()) { Serializable value = en.getValue();
@Override public long getLatestLogId(String repositoryId, String... eventIds) { Map<String, Object> params = getParams(eventIds); String paramNames = getParamNames(eventIds); params.put("repoId", repositoryId); String query = String.format("FROM LogEntry log" // + " WHERE log.eventId IN (%s)" // + " AND log.repositoryId = :repoId" // + " ORDER BY log.id DESC", paramNames); @SuppressWarnings("unchecked") List<LogEntry> entries = (List<LogEntry>) nativeQuery(query, params, 1, 1); return entries.isEmpty() ? 0 : entries.get(0).getId(); }
/** * Could be overridden to put other (additional) data. */ protected static void writeLogEntry(Element logEntryElement, LogEntry logEntry) { logEntryElement.addAttribute("category", logEntry.getCategory()); logEntryElement.addAttribute("comment", logEntry.getComment()); logEntryElement.addAttribute("docLifeCycle", logEntry.getDocLifeCycle()); logEntryElement.addAttribute("docPath", logEntry.getDocPath()); logEntryElement.addAttribute("docType", logEntry.getDocType()); logEntryElement.addAttribute("docUUID", logEntry.getDocUUID()); logEntryElement.addAttribute("repoId", logEntry.getRepositoryId()); String creationDate = getDateFormat().format(logEntry.getEventDate()); logEntryElement.addAttribute("creationDate", creationDate); logEntryElement.addAttribute("eventId", logEntry.getEventId()); logEntryElement.addAttribute("principalName", logEntry.getPrincipalName()); }
protected void writeEntry(LogAppender<Record> appender, LogEntry entry) { String json = asJson(entry); if (json == null) { return; } long timestamp = getTimestampForEntry(entry); appender.append(0, new Record(String.valueOf(entry.getId()), json.getBytes(UTF_8), Watermark.ofTimestamp(timestamp).getValue())); }
jg.writeStringField("entity-type", "logEntry"); writeField(jg, LOG_CATEGORY, logEntry.getCategory()); writeField(jg, LOG_PRINCIPAL_NAME, logEntry.getPrincipalName()); writeField(jg, LOG_COMMENT, logEntry.getComment()); writeField(jg, LOG_DOC_LIFE_CYCLE, logEntry.getDocLifeCycle()); writeField(jg, LOG_DOC_PATH, logEntry.getDocPath()); writeField(jg, LOG_DOC_TYPE, logEntry.getDocType()); writeField(jg, LOG_DOC_UUID, logEntry.getDocUUID()); writeField(jg, LOG_EVENT_ID, logEntry.getEventId()); writeField(jg, LOG_REPOSITORY_ID, logEntry.getRepositoryId()); jg.writeStringField(LOG_EVENT_DATE, ISODateTimeFormat.dateTime().print(new DateTime(logEntry.getEventDate()))); jg.writeNumberField(LOG_ID, logEntry.getId()); jg.writeStringField(LOG_LOG_DATE, ISODateTimeFormat.dateTime().print(new DateTime(logEntry.getLogDate()))); Map<String, ExtendedInfo> extended = logEntry.getExtendedInfos(); jg.writeObjectFieldStart(LOG_EXTENDED); for (String key : extended.keySet()) {