From 5cdee9322bb0ff8fda10ce5632dd844bda6553c5 Mon Sep 17 00:00:00 2001 From: Tony Shen Date: Mon, 13 Feb 2023 16:14:10 +0800 Subject: [PATCH 01/10] Update KeyEviction.java --- .../main/java/com/safframework/rxcache/key/KeyEviction.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/com/safframework/rxcache/key/KeyEviction.java b/core/src/main/java/com/safframework/rxcache/key/KeyEviction.java index 267274b7..3926911c 100644 --- a/core/src/main/java/com/safframework/rxcache/key/KeyEviction.java +++ b/core/src/main/java/com/safframework/rxcache/key/KeyEviction.java @@ -4,9 +4,9 @@ * @FileName: com.safframework.rxcache.key.KeyEviction * @author: Tony Shen * @date: 2021-02-09 21:14 - * @version: V1.0 <描述当前版本功能> + * @version: V1.0 key 淘汰的枚举,包含同步淘汰 key 和 异步淘汰 key */ public enum KeyEviction { - SYNC, - ASYNC + SYNC, // 默认为 同步淘汰 key的方式,在获取缓存 key 的同时,会判断是否过期 + ASYNC // 异步淘汰 key 的方式: RxCache 内部定时判断所有的 key ,如果有过期的 key,则删除 } From c6c37947080315f685182a0681379666e8c0b765 Mon Sep 17 00:00:00 2001 From: Tony Shen Date: Mon, 13 Feb 2023 19:04:21 +0800 Subject: [PATCH 02/10] add Logger for RxCache --- .../safframework/rxcache/CacheRepository.java | 9 +++++++-- .../com/safframework/rxcache/RxCache.java | 9 ++++++++- .../com/safframework/rxcache/log/Logger.java | 20 +++++++++++++++++++ 3 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 core/src/main/java/com/safframework/rxcache/log/Logger.java diff --git a/core/src/main/java/com/safframework/rxcache/CacheRepository.java b/core/src/main/java/com/safframework/rxcache/CacheRepository.java index 6c77708b..c72e82ed 100644 --- a/core/src/main/java/com/safframework/rxcache/CacheRepository.java +++ b/core/src/main/java/com/safframework/rxcache/CacheRepository.java @@ -6,6 +6,7 @@ import com.safframework.rxcache.domain.CacheStrategy; import com.safframework.rxcache.domain.Record; import com.safframework.rxcache.key.KeyEviction; +import com.safframework.rxcache.log.Logger; import com.safframework.rxcache.memory.Memory; import com.safframework.rxcache.persistence.Persistence; import com.safframework.rxcache.persistence.converter.Converter; @@ -29,14 +30,16 @@ class CacheRepository { private Memory memory; private Persistence persistence; private ConcurrentHashMap evictionPool; + private Logger mLogger; private final ReentrantReadWriteLock lock = new ReentrantReadWriteLock(); private final Lock readLock = lock.readLock(); private final Lock writeLock = lock.writeLock(); - CacheRepository(Memory memory, Persistence persistence, KeyEviction keyEviction) { + CacheRepository(Memory memory, Persistence persistence, KeyEviction keyEviction, Logger logger) { this.memory = memory; this.persistence = persistence; + this.mLogger = logger; if (keyEviction == KeyEviction.ASYNC) { evictionPool = new ConcurrentHashMap(); @@ -317,7 +320,9 @@ protected boolean checkKey(String key) { try { return getStringData(key)!=null; } catch (Exception e){ - e.printStackTrace(); + if (mLogger!=null) { + mLogger.e("checkKey is failed...", "rxcache", e.getCause()); + } return false; } } diff --git a/core/src/main/java/com/safframework/rxcache/RxCache.java b/core/src/main/java/com/safframework/rxcache/RxCache.java index bf4ebd7d..2ff23e33 100644 --- a/core/src/main/java/com/safframework/rxcache/RxCache.java +++ b/core/src/main/java/com/safframework/rxcache/RxCache.java @@ -4,6 +4,7 @@ import com.safframework.rxcache.domain.CacheStrategy; import com.safframework.rxcache.domain.Record; import com.safframework.rxcache.key.KeyEviction; +import com.safframework.rxcache.log.Logger; import com.safframework.rxcache.memory.Memory; import com.safframework.rxcache.memory.impl.FIFOMemoryImpl; import com.safframework.rxcache.persistence.Persistence; @@ -56,7 +57,7 @@ public synchronized static void config(Supplier builder) { } private RxCache(Builder builder) { - cacheRepository = new CacheRepository(builder.memory, builder.persistence, builder.keyEviction); + cacheRepository = new CacheRepository(builder.memory, builder.persistence, builder.keyEviction, builder.mLogger); adapter = builder.adapter; if (builder.keyEviction == KeyEviction.ASYNC && adapter!=null) { @@ -379,6 +380,7 @@ public void dispose() { public static final class Builder { private Memory memory; private Persistence persistence; + private Logger mLogger; private KeyEviction keyEviction; private Adapter adapter; @@ -392,6 +394,11 @@ public Builder persistence(Persistence persistence) { return this; } + public Builder log(Logger logger) { + this.mLogger = logger; + return this; + } + public Builder keyEviction(KeyEviction keyEviction) { this.keyEviction = keyEviction; return this; diff --git a/core/src/main/java/com/safframework/rxcache/log/Logger.java b/core/src/main/java/com/safframework/rxcache/log/Logger.java new file mode 100644 index 00000000..fd7d4f77 --- /dev/null +++ b/core/src/main/java/com/safframework/rxcache/log/Logger.java @@ -0,0 +1,20 @@ +package com.safframework.rxcache.log; + +/** + * @FileName: com.safframework.rxcache.log.Logger + * @author: Tony Shen + * @date: 2023/2/13 3:52 PM + * @version: V1.0 <描述当前版本功能> + */ +public interface Logger { + + void i(String msg, String tag); + + void v(String msg, String tag); + + void d(String msg, String tag); + + void w(String msg, String tag, Throwable tr); + + void e(String msg, String tag, Throwable tr); +} From 41eb88cf5bf25d20e7e015879b6f1feefee934f0 Mon Sep 17 00:00:00 2001 From: Tony Shen Date: Mon, 13 Feb 2023 20:10:29 +0800 Subject: [PATCH 03/10] add LoggerProxy --- core/build.gradle | 14 ++++++- .../safframework/rxcache/CacheRepository.java | 9 ++--- .../com/safframework/rxcache/RxCache.java | 40 +++++++++++++++++-- .../safframework/rxcache/log/LoggerProxy.kt | 24 +++++++++++ 4 files changed, 78 insertions(+), 9 deletions(-) create mode 100644 core/src/main/kotlin/com/safframework/rxcache/log/LoggerProxy.kt diff --git a/core/build.gradle b/core/build.gradle index 72913920..fdfa4b1c 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java' + id 'kotlin' } group = 'com.github.fengzhizi715' @@ -15,8 +16,19 @@ repositories { dependencies { testImplementation group: 'junit', name: 'junit', version: '4.12' - + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" implementation "com.google.code.gson:gson:${libs.gson}" implementation "com.github.fengzhizi715.bytekit:core:${libs.bytekit}" implementation "org.jooq:joor-java-8:${libs.joor_java}" + +} +compileKotlin { + kotlinOptions { + jvmTarget = "1.8" + } +} +compileTestKotlin { + kotlinOptions { + jvmTarget = "1.8" + } } diff --git a/core/src/main/java/com/safframework/rxcache/CacheRepository.java b/core/src/main/java/com/safframework/rxcache/CacheRepository.java index c72e82ed..ff9dba7a 100644 --- a/core/src/main/java/com/safframework/rxcache/CacheRepository.java +++ b/core/src/main/java/com/safframework/rxcache/CacheRepository.java @@ -7,6 +7,7 @@ import com.safframework.rxcache.domain.Record; import com.safframework.rxcache.key.KeyEviction; import com.safframework.rxcache.log.Logger; +import com.safframework.rxcache.log.LoggerProxy; import com.safframework.rxcache.memory.Memory; import com.safframework.rxcache.persistence.Persistence; import com.safframework.rxcache.persistence.converter.Converter; @@ -30,16 +31,14 @@ class CacheRepository { private Memory memory; private Persistence persistence; private ConcurrentHashMap evictionPool; - private Logger mLogger; private final ReentrantReadWriteLock lock = new ReentrantReadWriteLock(); private final Lock readLock = lock.readLock(); private final Lock writeLock = lock.writeLock(); - CacheRepository(Memory memory, Persistence persistence, KeyEviction keyEviction, Logger logger) { + CacheRepository(Memory memory, Persistence persistence, KeyEviction keyEviction) { this.memory = memory; this.persistence = persistence; - this.mLogger = logger; if (keyEviction == KeyEviction.ASYNC) { evictionPool = new ConcurrentHashMap(); @@ -320,8 +319,8 @@ protected boolean checkKey(String key) { try { return getStringData(key)!=null; } catch (Exception e){ - if (mLogger!=null) { - mLogger.e("checkKey is failed...", "rxcache", e.getCause()); + if (LoggerProxy.INSTANCE.getLogger()!=null) { + LoggerProxy.INSTANCE.getLogger().e("checkKey is failed...", "rxcache", e.getCause()); } return false; } diff --git a/core/src/main/java/com/safframework/rxcache/RxCache.java b/core/src/main/java/com/safframework/rxcache/RxCache.java index 2ff23e33..3f78f92d 100644 --- a/core/src/main/java/com/safframework/rxcache/RxCache.java +++ b/core/src/main/java/com/safframework/rxcache/RxCache.java @@ -5,6 +5,7 @@ import com.safframework.rxcache.domain.Record; import com.safframework.rxcache.key.KeyEviction; import com.safframework.rxcache.log.Logger; +import com.safframework.rxcache.log.LoggerProxy; import com.safframework.rxcache.memory.Memory; import com.safframework.rxcache.memory.impl.FIFOMemoryImpl; import com.safframework.rxcache.persistence.Persistence; @@ -57,9 +58,11 @@ public synchronized static void config(Supplier builder) { } private RxCache(Builder builder) { - cacheRepository = new CacheRepository(builder.memory, builder.persistence, builder.keyEviction, builder.mLogger); + cacheRepository = new CacheRepository(builder.memory, builder.persistence, builder.keyEviction); adapter = builder.adapter; + LoggerProxy.INSTANCE.initLogger(builder.log); + if (builder.keyEviction == KeyEviction.ASYNC && adapter!=null) { adapter.interval(this); } @@ -380,7 +383,7 @@ public void dispose() { public static final class Builder { private Memory memory; private Persistence persistence; - private Logger mLogger; + private Logger log; private KeyEviction keyEviction; private Adapter adapter; @@ -395,7 +398,7 @@ public Builder persistence(Persistence persistence) { } public Builder log(Logger logger) { - this.mLogger = logger; + this.log = logger; return this; } @@ -418,6 +421,37 @@ public RxCache build() { keyEviction = KeyEviction.SYNC; // 默认情况,使用同步删除淘汰 key 的方式 } + if (log == null) { // 默认情况,设置 Logger + log = new Logger() { + @Override + public void i(String msg, String tag) { + System.out.println(tag + " " + msg); + } + + @Override + public void v(String msg, String tag) { + System.out.println(tag + " " + msg); + } + + @Override + public void d(String msg, String tag) { + System.out.println(tag + " " + msg); + } + + @Override + public void w(String msg, String tag, Throwable tr) { + tr.printStackTrace(); + System.out.println(tag + " " + msg); + } + + @Override + public void e(String msg, String tag, Throwable tr) { + tr.printStackTrace(); + System.err.println(tag + " " + msg); + } + }; + } + return new RxCache(this); } } diff --git a/core/src/main/kotlin/com/safframework/rxcache/log/LoggerProxy.kt b/core/src/main/kotlin/com/safframework/rxcache/log/LoggerProxy.kt new file mode 100644 index 00000000..c819e010 --- /dev/null +++ b/core/src/main/kotlin/com/safframework/rxcache/log/LoggerProxy.kt @@ -0,0 +1,24 @@ +package com.safframework.rxcache.log + +/** + * + * @FileName: + * com.safframework.rxcache.log.LoggerProxy + * @author: Tony Shen + * @date: 2023/2/13 8:00 PM + * @version: V1.0 <描述当前版本功能> + */ +object LoggerProxy { + + private lateinit var mLogger: Logger + + fun initLogger(logger: Logger) { + mLogger = logger + } + + fun getLogger() = mLogger +} + +fun String.logI() = LoggerProxy.getLogger().i(this,"rxcache") + +fun Throwable.logE(msg: String) = LoggerProxy.getLogger().e(msg, "rxcache", this) \ No newline at end of file From 3964489b385330e5a3f365ca5403ecc3be55f516 Mon Sep 17 00:00:00 2001 From: Tony Shen Date: Mon, 13 Feb 2023 21:01:26 +0800 Subject: [PATCH 04/10] add log --- .../com/safframework/rxcache/converter/ProtostuffUtils.java | 5 +++++ .../main/java/com/safframework/rxcache/CacheRepository.java | 4 +--- .../safframework/rxcache/memory/algorithm/lru/LRUCache.java | 6 +++++- .../rxcache/persistence/disk/impl/DiskImpl.java | 6 ++++-- .../java/com/safframework/rxcache/reflect/TypeBuilder.java | 6 ++++++ .../java/com/safframework/rxcache/reflect/TypeToken.java | 2 ++ .../rxcache/reflect/impl/ParameterizedTypeImpl.java | 6 +++++- .../com/safframework/rxcache/persistence/okio/OkioImpl.java | 5 +++-- 8 files changed, 31 insertions(+), 9 deletions(-) diff --git a/converter/protobuf/src/main/java/com/safframework/rxcache/converter/ProtostuffUtils.java b/converter/protobuf/src/main/java/com/safframework/rxcache/converter/ProtostuffUtils.java index a55feccf..8be6f114 100644 --- a/converter/protobuf/src/main/java/com/safframework/rxcache/converter/ProtostuffUtils.java +++ b/converter/protobuf/src/main/java/com/safframework/rxcache/converter/ProtostuffUtils.java @@ -2,6 +2,7 @@ import com.safframework.rxcache.domain.CacheHolder; import com.safframework.rxcache.exception.RxCacheException; +import com.safframework.rxcache.log.LoggerProxy; import io.protostuff.*; import io.protostuff.runtime.DefaultIdStrategy; import io.protostuff.runtime.Delegate; @@ -111,6 +112,7 @@ private static Schema getSchema(Class cls) { public static byte[] serialize(T obj) { if (obj == null) { + LoggerProxy.INSTANCE.getLogger().i("序列号对象不能为空","rxcache"); throw new RxCacheException("序列号对象不能为空"); } @@ -126,6 +128,7 @@ public static byte[] serialize(T obj) { } return ProtostuffIOUtil.toByteArray(serializeObject, schema, buffer); } catch (Exception e) { + LoggerProxy.INSTANCE.getLogger().e("serialize is failed...","rxcache", e); throw new IllegalStateException(e.getMessage(), e); } finally { buffer.clear(); @@ -143,6 +146,7 @@ public static byte[] serialize(T obj) { public static T deserialize(byte[] data, Class clazz) { if (data == null) { + LoggerProxy.INSTANCE.getLogger().i("反序列号对象不能为空","rxcache"); throw new RxCacheException("反序列号对象不能为空"); } @@ -158,6 +162,7 @@ public static T deserialize(byte[] data, Class clazz) { return wrapper.getData(); } } catch (Exception e) { + LoggerProxy.INSTANCE.getLogger().e("deserialize is failed...","rxcache", e); throw new IllegalStateException(e.getMessage(), e); } } diff --git a/core/src/main/java/com/safframework/rxcache/CacheRepository.java b/core/src/main/java/com/safframework/rxcache/CacheRepository.java index ff9dba7a..6fc55758 100644 --- a/core/src/main/java/com/safframework/rxcache/CacheRepository.java +++ b/core/src/main/java/com/safframework/rxcache/CacheRepository.java @@ -319,9 +319,7 @@ protected boolean checkKey(String key) { try { return getStringData(key)!=null; } catch (Exception e){ - if (LoggerProxy.INSTANCE.getLogger()!=null) { - LoggerProxy.INSTANCE.getLogger().e("checkKey is failed...", "rxcache", e.getCause()); - } + LoggerProxy.INSTANCE.getLogger().e("checkKey() is failed...", "rxcache", e); return false; } } diff --git a/core/src/main/java/com/safframework/rxcache/memory/algorithm/lru/LRUCache.java b/core/src/main/java/com/safframework/rxcache/memory/algorithm/lru/LRUCache.java index ffbe77c2..4febae3e 100644 --- a/core/src/main/java/com/safframework/rxcache/memory/algorithm/lru/LRUCache.java +++ b/core/src/main/java/com/safframework/rxcache/memory/algorithm/lru/LRUCache.java @@ -2,6 +2,7 @@ import com.safframework.rxcache.domain.CacheStatistics; import com.safframework.rxcache.exception.RxCacheException; +import com.safframework.rxcache.log.LoggerProxy; import java.util.AbstractQueue; import java.util.Iterator; @@ -55,7 +56,10 @@ public V getSilent(K key) { public void put(K key, V value) { - if(key == null || value == null) throw new RxCacheException("key is null or value is null"); + if(key == null || value == null) { + LoggerProxy.INSTANCE.getLogger().i("key is null or value is null","rxcache"); + throw new RxCacheException("key is null or value is null"); + } if(cache.containsKey(key)) { queue.remove(key); diff --git a/core/src/main/java/com/safframework/rxcache/persistence/disk/impl/DiskImpl.java b/core/src/main/java/com/safframework/rxcache/persistence/disk/impl/DiskImpl.java index a396fb68..5e1f405b 100644 --- a/core/src/main/java/com/safframework/rxcache/persistence/disk/impl/DiskImpl.java +++ b/core/src/main/java/com/safframework/rxcache/persistence/disk/impl/DiskImpl.java @@ -7,6 +7,7 @@ import com.safframework.rxcache.domain.Record; import com.safframework.rxcache.domain.Source; import com.safframework.rxcache.exception.RxCacheException; +import com.safframework.rxcache.log.LoggerProxy; import com.safframework.rxcache.persistence.converter.Converter; import com.safframework.rxcache.persistence.converter.GsonConverter; import com.safframework.rxcache.persistence.disk.Disk; @@ -97,7 +98,7 @@ public Record retrieve(String key, Type type) { return result != null ? new Record<>(Source.PERSISTENCE, safetyKey, result, timestamp, expireTime) : null; } catch (Exception ignore) { - + LoggerProxy.INSTANCE.getLogger().e("retrieve() is failed...","rxcache", ignore); throw new RxCacheException(ignore); } finally { @@ -143,7 +144,7 @@ public String getStringData(String key) { return json; } catch (Exception ignore) { - + LoggerProxy.INSTANCE.getLogger().e("getStringData() is failed...","rxcache", ignore); throw new RxCacheException(ignore); } finally { @@ -169,6 +170,7 @@ public void save(String key, T value, long expireTime) { outputStream = new FileOutputStream(file, false); converter.writer(outputStream,new CacheHolder(converter.toJson(value),System.currentTimeMillis(),expireTime,converter.converterName())); } catch (Exception e) { + LoggerProxy.INSTANCE.getLogger().e("save() is failed...","rxcache", e); throw new RxCacheException(e); } finally { IOUtils.closeQuietly(outputStream); diff --git a/core/src/main/java/com/safframework/rxcache/reflect/TypeBuilder.java b/core/src/main/java/com/safframework/rxcache/reflect/TypeBuilder.java index f9d5275b..0595ecf6 100644 --- a/core/src/main/java/com/safframework/rxcache/reflect/TypeBuilder.java +++ b/core/src/main/java/com/safframework/rxcache/reflect/TypeBuilder.java @@ -1,6 +1,7 @@ package com.safframework.rxcache.reflect; import com.safframework.rxcache.exception.RxCacheException; +import com.safframework.rxcache.log.LoggerProxy; import com.safframework.rxcache.reflect.impl.ParameterizedTypeImpl; import com.safframework.rxcache.reflect.impl.WildcardTypeImpl; @@ -38,6 +39,7 @@ public TypeBuilder beginSubType(Class raw) { public TypeBuilder endSubType() { if (parent == null) { + LoggerProxy.INSTANCE.getLogger().i("expect beginSubType() before endSubType()", "rxcache"); throw new RxCacheException("expect beginSubType() before endSubType()"); } @@ -53,6 +55,7 @@ public TypeBuilder addTypeParam(Class clazz) { public TypeBuilder addTypeParamExtends(Class... classes) { if (classes == null) { + LoggerProxy.INSTANCE.getLogger().i("addTypeParamExtends() expect not null Class", "rxcache"); throw new RxCacheException("addTypeParamExtends() expect not null Class"); } @@ -64,6 +67,7 @@ public TypeBuilder addTypeParamExtends(Class... classes) { public TypeBuilder addTypeParamSuper(Class... classes) { if (classes == null) { + LoggerProxy.INSTANCE.getLogger().i("addTypeParamSuper() expect not null Class", "rxcache"); throw new RxCacheException("addTypeParamSuper() expect not null Class"); } @@ -75,6 +79,7 @@ public TypeBuilder addTypeParamSuper(Class... classes) { public TypeBuilder addTypeParam(Type type) { if (type == null) { + LoggerProxy.INSTANCE.getLogger().i("addTypeParam expect not null Type", "rxcache"); throw new RxCacheException("addTypeParam expect not null Type"); } @@ -86,6 +91,7 @@ public TypeBuilder addTypeParam(Type type) { public Type build() { if (parent != null) { + LoggerProxy.INSTANCE.getLogger().i("expect endSubType() before build()", "rxcache"); throw new RxCacheException("expect endSubType() before build()"); } diff --git a/core/src/main/java/com/safframework/rxcache/reflect/TypeToken.java b/core/src/main/java/com/safframework/rxcache/reflect/TypeToken.java index 91b5ffc8..1ec536d2 100644 --- a/core/src/main/java/com/safframework/rxcache/reflect/TypeToken.java +++ b/core/src/main/java/com/safframework/rxcache/reflect/TypeToken.java @@ -1,6 +1,7 @@ package com.safframework.rxcache.reflect; import com.safframework.rxcache.exception.RxCacheException; +import com.safframework.rxcache.log.LoggerProxy; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; @@ -16,6 +17,7 @@ public TypeToken() { Type superclass = getClass().getGenericSuperclass(); if (superclass instanceof Class) { + LoggerProxy.INSTANCE.getLogger().i("No generics found!", "rxcache"); throw new RxCacheException("No generics found!"); } ParameterizedType type = (ParameterizedType) superclass; diff --git a/core/src/main/java/com/safframework/rxcache/reflect/impl/ParameterizedTypeImpl.java b/core/src/main/java/com/safframework/rxcache/reflect/impl/ParameterizedTypeImpl.java index d1748c45..c9e2083b 100644 --- a/core/src/main/java/com/safframework/rxcache/reflect/impl/ParameterizedTypeImpl.java +++ b/core/src/main/java/com/safframework/rxcache/reflect/impl/ParameterizedTypeImpl.java @@ -1,6 +1,7 @@ package com.safframework.rxcache.reflect.impl; import com.safframework.rxcache.exception.RxCacheException; +import com.safframework.rxcache.log.LoggerProxy; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; @@ -27,12 +28,15 @@ public ParameterizedTypeImpl(Class raw, Type[] args, Type owner) { private void checkArgs() { if (raw == null) { + LoggerProxy.INSTANCE.getLogger().i("raw class can't be null", "rxcache"); throw new RxCacheException("raw class can't be null"); } TypeVariable[] typeParameters = raw.getTypeParameters(); if (args.length != 0 && typeParameters.length != args.length) { - throw new RxCacheException(raw.getName() + " expect " + typeParameters.length + " arg(s), got " + args.length); + String errorMsg = raw.getName() + " expect " + typeParameters.length + " arg(s), got " + args.length; + LoggerProxy.INSTANCE.getLogger().i(errorMsg, "rxcache"); + throw new RxCacheException(errorMsg); } } diff --git a/persistence/okio/src/main/java/com/safframework/rxcache/persistence/okio/OkioImpl.java b/persistence/okio/src/main/java/com/safframework/rxcache/persistence/okio/OkioImpl.java index 4b3f6708..15cf12ca 100644 --- a/persistence/okio/src/main/java/com/safframework/rxcache/persistence/okio/OkioImpl.java +++ b/persistence/okio/src/main/java/com/safframework/rxcache/persistence/okio/OkioImpl.java @@ -7,6 +7,7 @@ import com.safframework.rxcache.domain.Record; import com.safframework.rxcache.domain.Source; import com.safframework.rxcache.exception.RxCacheException; +import com.safframework.rxcache.log.LoggerProxy; import com.safframework.rxcache.persistence.converter.Converter; import com.safframework.rxcache.persistence.converter.GsonConverter; import com.safframework.rxcache.persistence.disk.Disk; @@ -116,7 +117,7 @@ public Record retrieve(String key, Type type) { return result != null ? new Record<>(Source.PERSISTENCE, safetyKey, result, timestamp, expireTime) : null; } catch (Exception ignore) { - + LoggerProxy.INSTANCE.getLogger().e("retrieve() is failed...", "rxcache", ignore); throw new RxCacheException(ignore); } finally { @@ -166,7 +167,7 @@ public String getStringData(String key) { return json; } catch (Exception ignore) { - + LoggerProxy.INSTANCE.getLogger().e("getStringData() is failed...", "rxcache", ignore); throw new RxCacheException(ignore); } finally { From 5f26b5a6ed84d4a6dd114db15eeeb80ba3658fa8 Mon Sep 17 00:00:00 2001 From: Tony Shen Date: Tue, 14 Feb 2023 11:10:00 +0800 Subject: [PATCH 05/10] Update build.gradle --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index f00a30fc..0c6af770 100644 --- a/build.gradle +++ b/build.gradle @@ -34,7 +34,7 @@ ext { ktor : "1.6.4", - chronicle_map : "3.23ea1", + chronicle_map : "3.24ea2", bytekit : "v1.3.0", From 96e8670b597456861af0d566dd97ec614ac3894c Mon Sep 17 00:00:00 2001 From: Tony Shen Date: Tue, 14 Feb 2023 11:23:27 +0800 Subject: [PATCH 06/10] Update build.gradle --- build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 0c6af770..9ed1d798 100644 --- a/build.gradle +++ b/build.gradle @@ -24,11 +24,11 @@ ext { caffeine : "2.9.2", - okio : "2.10.0", + okio : "3.3.0", mapdb : "3.0.8", - moshi : "1.12.0", + moshi : "1.14.0", protostuff : "1.7.4", From ce4ad31f50c4a3ec7e5c1c29b3253ae8cc9a27d4 Mon Sep 17 00:00:00 2001 From: Tony Shen Date: Tue, 14 Feb 2023 13:35:32 +0800 Subject: [PATCH 07/10] Update LoggerProxy.kt --- .../src/main/kotlin/com/safframework/rxcache/log/LoggerProxy.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/kotlin/com/safframework/rxcache/log/LoggerProxy.kt b/core/src/main/kotlin/com/safframework/rxcache/log/LoggerProxy.kt index c819e010..80953718 100644 --- a/core/src/main/kotlin/com/safframework/rxcache/log/LoggerProxy.kt +++ b/core/src/main/kotlin/com/safframework/rxcache/log/LoggerProxy.kt @@ -8,7 +8,7 @@ package com.safframework.rxcache.log * @date: 2023/2/13 8:00 PM * @version: V1.0 <描述当前版本功能> */ -object LoggerProxy { +internal object LoggerProxy { private lateinit var mLogger: Logger From ae967f13b38e40be8219187e23fe6ed08b7e1a77 Mon Sep 17 00:00:00 2001 From: Tony Shen Date: Tue, 14 Feb 2023 13:53:49 +0800 Subject: [PATCH 08/10] refactor --- .../com/safframework/rxcache/log/Logger.java | 20 ------------------- .../safframework/rxcache/log/LoggerProxy.kt | 8 ++++++++ 2 files changed, 8 insertions(+), 20 deletions(-) delete mode 100644 core/src/main/java/com/safframework/rxcache/log/Logger.java diff --git a/core/src/main/java/com/safframework/rxcache/log/Logger.java b/core/src/main/java/com/safframework/rxcache/log/Logger.java deleted file mode 100644 index fd7d4f77..00000000 --- a/core/src/main/java/com/safframework/rxcache/log/Logger.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.safframework.rxcache.log; - -/** - * @FileName: com.safframework.rxcache.log.Logger - * @author: Tony Shen - * @date: 2023/2/13 3:52 PM - * @version: V1.0 <描述当前版本功能> - */ -public interface Logger { - - void i(String msg, String tag); - - void v(String msg, String tag); - - void d(String msg, String tag); - - void w(String msg, String tag, Throwable tr); - - void e(String msg, String tag, Throwable tr); -} diff --git a/core/src/main/kotlin/com/safframework/rxcache/log/LoggerProxy.kt b/core/src/main/kotlin/com/safframework/rxcache/log/LoggerProxy.kt index 80953718..43b8cabe 100644 --- a/core/src/main/kotlin/com/safframework/rxcache/log/LoggerProxy.kt +++ b/core/src/main/kotlin/com/safframework/rxcache/log/LoggerProxy.kt @@ -8,6 +8,14 @@ package com.safframework.rxcache.log * @date: 2023/2/13 8:00 PM * @version: V1.0 <描述当前版本功能> */ +interface Logger { + fun i(msg: String, tag: String? = "rxcache") + fun v(msg: String, tag: String? = "rxcache") + fun d(msg: String, tag: String? = "rxcache") + fun w(msg: String, tag: String? = "rxcache", tr: Throwable?) + fun e(msg: String, tag: String? = "rxcache", tr: Throwable?) +} + internal object LoggerProxy { private lateinit var mLogger: Logger From 1ce12dec149effb2280628dea8d72328b9cb46d3 Mon Sep 17 00:00:00 2001 From: Tony Shen Date: Tue, 14 Feb 2023 14:59:32 +0800 Subject: [PATCH 09/10] update --- build.gradle | 2 +- .../src/main/kotlin/com/safframework/rxcache/log/LoggerProxy.kt | 2 +- example/src/main/kotlin/extension/TestCoroutines.kt | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/build.gradle b/build.gradle index 9ed1d798..d412cee9 100644 --- a/build.gradle +++ b/build.gradle @@ -40,7 +40,7 @@ ext { result : "v1.0.4", - coroutines_utils : "v1.1.5" + coroutines_utils : "v1.1.6" ] } diff --git a/core/src/main/kotlin/com/safframework/rxcache/log/LoggerProxy.kt b/core/src/main/kotlin/com/safframework/rxcache/log/LoggerProxy.kt index 43b8cabe..0575fe2b 100644 --- a/core/src/main/kotlin/com/safframework/rxcache/log/LoggerProxy.kt +++ b/core/src/main/kotlin/com/safframework/rxcache/log/LoggerProxy.kt @@ -16,7 +16,7 @@ interface Logger { fun e(msg: String, tag: String? = "rxcache", tr: Throwable?) } -internal object LoggerProxy { +object LoggerProxy { private lateinit var mLogger: Logger diff --git a/example/src/main/kotlin/extension/TestCoroutines.kt b/example/src/main/kotlin/extension/TestCoroutines.kt index 310490b3..0c2c8f5c 100644 --- a/example/src/main/kotlin/extension/TestCoroutines.kt +++ b/example/src/main/kotlin/extension/TestCoroutines.kt @@ -6,7 +6,6 @@ import com.safframework.rxcache.coroutines.getDeferred import com.safframework.rxcache.coroutines.getFlow import com.safframework.rxcache.ext.saveFunc import domain.User -import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.flowOn import kotlinx.coroutines.flow.map import kotlinx.coroutines.runBlocking From e8d83de4b5b4078d0cba630cf740258cb2709044 Mon Sep 17 00:00:00 2001 From: Tony Shen Date: Tue, 14 Feb 2023 15:21:26 +0800 Subject: [PATCH 10/10] Update CHANGELOG.md --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e1ece72c..61628d28 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ RxCache === +Version 2.1.8 +--- +2023-2-14 +* 第三方库的升级 +* 增加对外暴露的日志接口 + Version 2.1.7 --- 2023-1-16