日志优化

This commit is contained in:
Redkale
2022-12-07 09:56:03 +08:00
parent 7a915c7015
commit 5a1f6c8b1a
2 changed files with 23 additions and 2 deletions

View File

@@ -142,7 +142,7 @@ public abstract class DataSqlSource extends AbstractDataSource implements Functi
String newValue = decryptProperty(event.name(), event.newValue().toString());
allEvents.add(ResourceEvent.create(event.name(), newValue, event.oldValue()));
newProps.put(event.name(), newValue);
sb.append("DataSource(name=").append(resourceName()).append(") the ").append(event.name()).append(" resource changed\r\n");
sb.append("DataSource(name=").append(resourceName()).append(") change '").append(event.name()).append("' to '").append(event.coverNewValue()).append("'\r\n");
}
updateOneResourceChange(newProps, allEvents.toArray(new ResourceEvent[allEvents.size()]));
for (ResourceEvent event : allEvents) {
@@ -165,7 +165,7 @@ public abstract class DataSqlSource extends AbstractDataSource implements Functi
writeEvents.add(ResourceEvent.create(newName, newValue, event.oldValue()));
newWriteProps.put(event.name(), newValue);
}
sb.append("DataSource(name=").append(resourceName()).append(") the ").append(event.name()).append(" resource changed\r\n");
sb.append("DataSource(name=").append(resourceName()).append(") change '").append(event.name()).append("' to '").append(event.coverNewValue()).append("'\r\n");
}
if (!readEvents.isEmpty()) {
updateReadResourceChange(newReadProps, readEvents.toArray(new ResourceEvent[readEvents.size()]));

View File

@@ -2,6 +2,9 @@
*/
package org.redkale.util;
import java.util.function.Predicate;
import java.util.regex.Pattern;
/**
* 详情见: https://redkale.org
*
@@ -18,6 +21,14 @@ public interface ResourceEvent<T> {
public T oldValue();
default String coverNewValue() {
return ResourceChangeEvent.cover(newValue());
}
default String coverOldValue() {
return ResourceChangeEvent.cover(oldValue());
}
public static boolean containsName(ResourceEvent[] events, String... names) {
if (events == null || events.length == 0 || names.length == 0) return false;
for (ResourceEvent event : events) {
@@ -32,12 +43,22 @@ public interface ResourceEvent<T> {
public static class ResourceChangeEvent<T> implements ResourceEvent<T> {
private static final Predicate<String> numRegx = Pattern.compile("^(\\-|\\+)?\\d+(\\.\\d+)?$").asPredicate();
protected String name;
protected T newValue;
protected T oldValue;
static <T> String cover(T val) {
if (val == null) return null;
String str = val.toString();
if (str.length() <= 4) return str;
if (numRegx.test(str)) return str;
return str.substring(0, 2) + "***" + str.substring(str.length() - 2);
}
@ConstructorParameters({"name", "newValue", "oldValue"})
public ResourceChangeEvent(String name, T newValue, T oldValue) {
this.name = name;