5level

小说:开淘宝店能赚到钱吗作者:马安平道更新时间:2019-02-21字数:33585

“黄金之仗!”雅典娜微微吐了一口浊气,将自己饱满无比的伟岸震动了一下,挥动手中权杖化作一道划破宇宙亿万虚空的金色流光和比起刚才更加巨大的雷霆之手再次碰撞在一起。

数据流程图兼职网站

一来,二最近人气实在太高,完全不亚于四大天王中的任何一位。而四大天王中,江之然和郑维最常被人拿来与二作比较。
他高兴是因为终于找到了最后一颗龙珠的下落,可是这龙珠却在海皇头上的王冠上嵌着,若真是这样的话,别说是他了,就连龙祖恐怕都取不下来。

孙晓和邹心宇彼此看了眼,坐得离舞台比较近的邹心宇,率先起身:“我先来好了。”

 

最近使用Abp开发了一个项目,对abp有一个大概的了解,第一个小项目接近尾声,新的项目马上开始,针对开发第一个项目中发现的问题及不方便的地方,本人做一些修改,特此记录,请大家多多指正!

本人的开发环境vs2017 ,vs code,使用abp版本为abp3.5 + angular开发,安装过程就免了,另外本人使用的aspnetzero。请大家自觉支持正版,技术支持很给力。
首先,完善下Abp的日志,apb 的日志系统使用Castle Windsor的日志记录工具,它可以和不同的logginh(日志)类库协作:Log4Net、NLog、Serilog等。Castle为所有Logger库提供一个公共接口,所以它独立于logging库,也可以在有需要的时候很容易地替换logging。

ABP模板 默认采用采用Log4Net,进行了简单的配置,主要是文件日志,查看下log4net的配置方法,尝试了其他的配置,例如数据库等,有些可以成功,有些不行:

 1   <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender" >
 2     <file type="log4net.Util.PatternString" value="App_Data/Logs/Log.txt"/>
 3     <appendToFile value="true" />
 4     <rollingStyle value="Size" />
 5     <maxSizeRollBackups value="10" />
 6     <maximumFileSize value="10000KB" />
 7     <staticLogFileName value="true" />
 8     <layout type="log4net.Layout.PatternLayout">
 9       <conversionPattern value="%-5level %date [%-5.5thread] %-40.40logger - %message%newline" />
10     </layout>
11   </appender>

abp默认不在控制台输出日志内容,因此有时候错误没办法找,必须打开日志文件(App_Data/Logs/Log.txt)查找最新的错误,这个有点低端,每次打开文本效率有点低,不符合我一贯能装的性格,有没有其他查看日志的方法:web signalr方式,我能想到的大神们估计都想到了,我这里配置了两个能装逼的:log2console和exceptionless;完成这个瞬间牛逼了许多。

先说第一个问题,abp日志配置有个问题就是有的配置节点中的layout type不能采用其他格式,主要是xml格式的貌似不支持;

xml配置方式是log2console的默认配置方式

1 <appender name="FileAppender" type="log4net.Appender.FileAppender">
2     <file value="log-file.txt" />
3     <appendToFile value="true" />
4     <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
5     <layout type="log4net.Layout.XmlLayoutSchemaLog4j" />
6 </appender>

这个配置在abp中是没效果的,是不是我漏掉什么了,大神们给个提示,非常感谢!

exceptionless也是这样,无敌了,叔可忍婶不可忍!

1、log2console

修改log2console源码,添加一个receiver,要做的很简单,复制原来的udp receiver,修改解析方法,首先做一个PatternLayout:

1     <layout type="log4net.Layout.PatternLayout">
2       <conversionPattern value="{"date":"%date","thread":"%-5.5thread","level":"%-5level","logger":"%-40.40logger"} %message" />
3     </layout>

这个很简单,就是把消息包装成json字符串加上message。

在log2console,Log2Console.Receiver.ReceiverUtils类中添加解析函数:

 1         public static LogMessage ParsePatternLayoutLogEvent(string logEvent, string defaultLogger)
 2         {
 3             var logMsg = new LogMessage();
 4             var sl = logEvent.Split("}");
 5             if (sl.Length < 2)
 6                 logMsg.Message = logEvent;
 7             else
 8             {
 9                 var jo = Newtonsoft.Json.JsonConvert.DeserializeObject<msgObj>(sl[0]  + "}");
10                 logMsg.TimeStamp = DateTime.Parse(jo.date.Trim().Replace(",","."));
11                 logMsg.Level = LogLevels.Instance[jo.level.Trim()];
12                 logMsg.LoggerName = jo.logger.Trim();
13                 logMsg.ThreadName = jo.thread.Trim();
14                 logMsg.Message = sl[1];
15             }
16             return logMsg;
17 
18         }

在receiver中添加新的解析类UdpPatternLayoutReceiver,简单复制udpReceiver,修改几行代码即可,start函数中,修改解析方法:

                    LogMessage logMsg = ReceiverUtils.ParsePatternLayoutLogEvent(loggingEvent, "UdpLogger");

另外修改SampleClientConfig,可以给用户提供个配置提示。

编译生成log2console。

最终生成的log2console界面。

最后一步,在abp项目中添加udp配置:

 1   <appender name="UdpAppender" type="log4net.Appender.UdpAppender">
 2     <param name="Encoding" value="utf-8" />
 3     <remoteAddress value="10.1.12.188" />
 4     <remotePort value="7071" />
 5     <layout type="log4net.Layout.PatternLayout">
 6       <conversionPattern value="{"date":"%date","thread":"%-5.5thread","level":"%-5level","logger":"%-40.40logger"} %message" />
 7     </layout>
 8   </appender>
 9 
10 
11 
12   <root>
13   
14 ........
15     <appender-ref ref="UdpAppender" />
16     <level value="ALL" />
17   </root>

现在,解决了看日志的问题了。

 2、exceptionless配置

 解决了看日志的问题保存日志的问题还是保存在文件里,查看历史不方便,exceptionless很好。

exceptionless的安装按照官方说明安装即可,我是在iis上安装的,安装过程中要注意两点,一是版本es版本要按照说明的版本安装,最新版本不支持。二是,es安装完成后,折腾了好长时间,我安装了head这个插件,进行配置没问题了,觉得安装过程中主要是配置了这个参数:

action.auto_creat_index:true  但没有测试不安装head插件仅配置这个参数是否可用。

es的head插件安装成功界面。

安装完成打开exceptionless,注册一个账号后,配置exceptionless,不允许新用户注册即可:

webconfig中添加或修改:<add key="EnableAccountCreation" value="true" />

exceptionless 安装成功。

配置abp中log 的exceptionless:

  <appender name="exceptionless" type="Exceptionless.Log4net.ExceptionlessAppender,Exceptionless.Log4net">
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%-4timestamp [%thread] %-5level %logger %ndc - %message%newline"/>
    </layout>
  </appender>




  <root>
//其他配置
    <appender-ref ref="exceptionless" />
    <level value="ALL" />
  </root>

 

安装nuget exceptionless的包:exceptionless.aspnetcore

在app.config中配置: 

 "Exceptionless": {
    "ApiKey": "你的apkkey",
    "ServerUrl": "http://你的地址",
    "DefaultData": {
      "JSON_OBJECT": "{ "Name": "Blake" }",
      "Boolean": true,
      "Number": 1,
      "Array": "1,2,3"
    },
    "DefaultTags": [ "xplat" ],
    "Settings": {
      "FeatureXYZEnabled": false
    }
  },

 

最后在host项目的startup的Configure函数中添加:app.UseExceptionless(_appConfiguration);

后续主要有这些方面的完善,敬请期待:

 

大功告成,谢谢你的打赏!

编辑:文北邓

发布:2019-02-21 09:37:49

当前文章:http://cnsdbtzg.com/news/2019011829460/index.html

有没有免费的 微店复制 微店上显示探店 做花生回记要投钱吗 ios埋雷软件 小步早教优惠券 花生日记粉丝的粉丝有佣金吗 长春美团一个月 玩赚联盟平台

23355 71866 18254 18448 69853 5860111411 48647 29342

我要说两句: (0人参与)

发布