1、创建仓储
private readonly HealthCardConfig cfg;
private readonly ICacheManager _cache;//缓存
public HealthCardService(ICacheManager cache)
{
_cache = cache;
cfg = HealthCardConfig.GetConfig();
}
2、‘写方法’
public async Task<string> GetAppToken()
{
var tk = _cache.GetCache("HealthCard.AppToken");//缓存
var code = tk.GetOrDefault(_health_token_key);//获取key的值,第一次的时候为null,超时后自动释放
if (code == default)
{
var ret = await AppToken();//得到token
var tkp = ret.Rsp;
global.Debug(string.Format("GetAppToken:tk={0},exp={1},cache.set", tkp.appToken, tkp.expiresIn));//使用log4net.Core.Level.Debug级别记录消息对象。
var exp = double.TryParse(tkp.expiresIn, out double temp) ? temp : 7200;//类型转换
var time = TimeSpan.FromSeconds(exp);//转换为时间格式00:00:33.4300000
tk.Set(_health_token_key, tkp.appToken, time);//存放key 值 时间,超时释放,时间为两个小时
return tkp.appToken;
}
else
{
//未超时执行该步骤
return code?.ToString();
}
}
3、日志log4net
protected log4net.ILog global;
protected MouDingServerAppServiceBase()
{
LocalizationSourceName = MouDingServerConsts.LocalizationSourceName;
server = new HisApiModule();
global = log4net.LogManager.GetLogger("global");
}
4、日志配置文件
<log4net>
<appender name="GlobalAppender" type="log4net.Appender.RollingFileAppender" >
<file value="App_Data/Logs/global.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10000KB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5level %date [%-5.5thread] %-4logger - %message%newline" />
</layout>
</appender>
<logger name="global">
<level value="ALL" />
<appender-ref ref="GlobalAppender" />
</logger>
</log4net>