当前位置: 首页 > news >正文

怎样在微信中做网站校园网站建设成本

怎样在微信中做网站,校园网站建设成本,wordpress注册无提示,软件工程师招聘简章pdf免费很多人习惯于python#xff0c;go等语言基础工具库的简单易用#xff1b;在使用rust时#xff0c;可能感觉比较麻烦#xff0c;类似日志库这样的基础性工具库。tklog提供用法上#xff0c;非常类似python等Logger的日志库用法#xff0c;用法简洁#xff1b;基于rust的高…很多人习惯于pythongo等语言基础工具库的简单易用在使用rust时可能感觉比较麻烦类似日志库这样的基础性工具库。tklog提供用法上非常类似python等Logger的日志库用法用法简洁基于rust的高效性和一些优化策略tklog的性能非常好在压测中可以达到 3-4 µs/op 微妙/次这个效率比go最高的性能时候都高一些在相同的环境下对go进行无格式日志输出压测可以达到 3-4µs/op如果是格式化日志输出则为4µs/op以上。(可以参考《 高性能日志库go-logger v2.0.3》中对各日志库的压测数据)。 在异步场景中tklog提供了对应的方法支持异步调用。异步方法最大的好处并非在性能上而是它不会阻塞所在线程。但是由于 tklog的常规日志方法默认使用延迟策略实际上也不会阻塞所在线程或者准确说影响非常小可以忽略不计。所以异步场景一般也可以直接使用常规日志打印方法。 相关连接 项目源码官网仓库 项目引入 [dependencies] tklog 0.0.2 #使用时的实际最新版本当前0.0.2版本 tklog是rust高性能结构化日志库 易用高效结构化控制台日志文件日志文件切割文件压缩同步打印异步打印 功能 功能支持控制台日志文件日志同步日志异步日志日志级别设置提供与标准库同级别日志打印 tracedebuginfowarnerrorfatal格式化输出支持自定义日志的输出格式包括日志级别标识、格式化时间、日志文件位置 等元素并支持自定义格式调整。按时间文件切割按小时天月份切割日志文件按大小文件切割按指定大小切割日志文件文件数回滚指定最大备份文件数支持自动删除旧日志文件并防止日志文件数过多。文件压缩支持压缩归档备份日志文件。 使用方法简述 最简单常用的方法直接调用 use tklog::{trace,debug, error, fatal, info,warn} fn testlog() {trace!(trace, aaaaaaaaa, 1, 2, 3, 4);debug!(debug, bbbbbbbbb, 1, 2, 3, 5);info!(info, ccccccccc, 1, 2, 3, 5);warn!(warn, dddddddddd, 1, 2, 3, 6);error!(error, eeeeeeee, 1, 2, 3, 7);fatal!(fatal, ffffffff, 1, 2, 3, 8); } 说明默认打开控制台日志没有写日志文件。打印结果 [TRACE] 2024-05-26 11:47:22 testlog.rs 27:trace,aaaaaaaaa,1,2,3,4 [DEBUG] 2024-05-26 11:47:22 testlog.rs 28:debug,bbbbbbbbb,1,2,3,5 [INFO] 2024-05-26 11:47:22 testlog.rs 29:info,ccccccccc,1,2,3,5 [WARN] 2024-05-26 11:47:22 testlog.rs 30:warn,dddddddddd,1,2,3,6 [ERROR] 2024-05-26 11:47:22 testlog.rs 31:error,eeeeeeee,1,2,3,7 [FATAL] 2024-05-26 11:47:22 testlog.rs 32:fatal,ffffffff,1,2,3,8 说明直接调用 debug等宏进行打印默认调用全局静态LOG对象。LOG对象支持初始化。 use tklog::{sync::Logger,LEVEL, LOG,Format,MODE, };fn log_init() {LOG.set_console(true) //设置控制台日志.set_level(LEVEL::Info) //日志级别默认Debug.set_format(Format::LevelFlag | Format::Time | Format::ShortFileName) //结构化日志定义输出的日志信息.set_cutmode_by_size(tklogsize.txt, 120, 10, true) //日志文件切割模式为文件大小每1M文件切分一次保留10个备份日志文件并压缩备份日志.set_formatter({level}{time} {file}:{message}\n) //自定义日志输出格式。默认{level}{time} {file}:{message} }fn testlog() {log_init() //调用初始化方法trace!(trace, aaaaaaaaa, 1, 2, 3, 4); //track日志级别小于设置的LEVEL::Info 故无输出info!(info, ccccccccc, 1, 2, 3, 5); } 以上是全局单实例打印的示例。tklog支持自定义多实例打印。多实例一般应用在系统要求不同打印结构的场景中。 多实例打印 use tklog::{debugs, errors, fatals, infos,sync::Logger,LEVEL, LOG,traces, warns, Format, MODE, }; fn testmutlilog() {let mut log Logger::new();log.set_console(true).set_level(LEVEL::Debug) //定义日志级别为Debug.set_cutmode_by_time(tklogs.log, MODE::DAY, 10, true) //分割日志文件的方式为按天分割保留最多10个备份并压缩备份文件.set_formatter({message} | {time} {file}{level}\n) //自定义日志结构信息的输入顺序与附加内容let mut logger Arc::clone(Arc::new(Mutex::new(log)));let log logger.borrow_mut();traces!(log, traces, AAAAAAAAA, 1, 2, 3, 4);debugs!(log, debugs, BBBBBBBBB, 1, 2, 3, 5);infos!(log, infos, CCCCCCCCC, 1, 2, 3, 5);warns!(log, warns, DDDDDDDDDD, 1, 2, 3, 6);errors!(log, errors, EEEEEEEE, 1, 2, 3, 7);fatals!(log, fatals, FFFFFFFF, 1, 2, 3, 8);thread::sleep(Duration::from_secs(1)) } 执行结果 debugs,BBBBBBBBB,1,2,3,5 | 2024-05-26 14:13:25 testlog.rs 70[DEBUG] infos,CCCCCCCCC,1,2,3,5 | 2024-05-26 14:13:25 testlog.rs 71[INFO] warns,DDDDDDDDDD,1,2,3,6 | 2024-05-26 14:13:25 testlog.rs 72[WARN] errors,EEEEEEEE,1,2,3,7 | 2024-05-26 14:13:25 testlog.rs 73[ERROR] fatals,FFFFFFFF,1,2,3,8 | 2024-05-26 14:13:25 testlog.rs 74[FATAL] 注意以上输入结构化信息由 {message} | {time} {file}{level}\n formatter决定。formatter中除了关键标识 {message}  {time}  {file}  {level} 外其他内容原样输出如 | 空格换行  等。 tklog使用详细说明 1. 日志级别  Trace Debug Info Warn Error Fatal 示例 LOG.set_level(LEVEL::Info) //日志级别设置为Info 2. 控制台日志 调用 .set_console(bool) 函数 LOG.set_console(false) // false表示不打印控制台日志。默认为true 3. 日志格式 Format::Nano                            无格式Format::Date                             输出日期 2024-05-26Format::Time                             输出时间精确到秒14:13:25Format::Microseconds              输出时间,精确到微妙18:09:17.462245    Format::LongFileName             长文件信息行号tests estlog.rs 25Format::ShortFileName             短文件信息行号testlog.rs 25Format::LevelFlag                      日志级别信息 [Debug] LOG.set_format(Format::LevelFlag | Format::Time | Format::ShortFileName) 4.自定义格式输出 默认{level}{time} {file}:{message} \n {level}            日志级别信息如[Debug]{time}            日志时间信息{file}               文件位置行号信息{message}      日志内容 LOG.set_formatter({message} | {time} {file}{level}\n); //自定义日志结构信息的输入顺序与附加内容 说明除了关键标识 {message}  {time}  {file}  {level} 外其他内容原样输出如 | 空格换行  等。 5.按时间分割日志文件 时间标识MODE::HOURMODE::DAYMODE::MONTH 分别是小时天月份 调用 .set_cutmode_by_time() 函数参数 文件路径时间模式最大备份日志文件数是否压缩备份的日志文件 示例 let mut log Logger::new(); log.set_cutmode_by_time(/usr/local/tklogs.log, MODE::DAY, 0, false) 说明备份文件路径为 /usr/local/tklogs.log  时间模式为按天备份参数0表示不限制备份文件数false表示不压缩备份的日志文件 备份的文件格式 按天备份日期文件如 tklogs_20240521.logtklogs_20240522.log按小时备份日志文件如 tklogs_2024052110.logtklogs_2024052211.log按月份备份日志文件如 tklogs_202403.logtklogs_202404.log 6.按大小分割日志文件 调用 .set_cutmode_by_size() 函数参数 文件路径指定文件滚动大小最大备份日志文件数是否压缩备份的日志文件 示例 let mut log Logger::new(); log.set_cutmode_by_time(tklogs.log, 10020, 10, true) 说明备份文件路径为tklogs.log  按100M大小备份文件参数10表示只保留最新10个备份文件true表示压缩备份的日志文件 备份的文件格式 tklogs_1.log.gztklogs_2.log.gztklogs_3.log.gz tklog提供常规日志打印 方法为 全局单例打印 trace!debug!info!warn!error!fatal!多实例打印 traces!debugs!infos!warns!errors!fatals! 异步日志 全局异步单例打印 async_trace!async_debug!async_info!async_warn!async_error!async_fatal!多实例异步打印 async_traces!async_debugs!async_infos!async_warns!async_errors!async_fatals! 异步方法使用示例 全局单例异步调用 use tklog::{async_debug, async_error, async_fatal, async_info, async_trace, async_warn, LEVEL, Format, ASYNC_LOG};async fn async_log_init() {// 全局单例设置参数ASYNC_LOG.set_console(false) //控制台.set_level(LEVEL::Trace) //日志级别.set_format(Format::LevelFlag | Format::Time | Format::ShortFileName) //结构化日志定义输出的日志信息.set_cutmode_by_size(tklog_async.txt, 10000, 10, false).await; //日志文件切割模式为文件大小每10000字节切割一次保留10个备份日志文件#[tokio::test] async fn testlog() {async_log_init().await; //参数设置async_trace!(trace, aaaaaaa, 1, 2, 3);async_debug!(debug, aaaaaaa, 1, 2, 3);async_info!(info, bbbbbbbbb, 1, 2, 3);async_warn!(warn, cccccccccc, 1, 2, 3);async_error!(error, ddddddddddddd, 1, 2, 3);async_fatal(fatal, eeeeeeeeeeeeee, 1, 2, 3);tokio::time::sleep(tokio::time::Duration::from_secs(3)).await; } 输出结果 [TRACE] 20:03:32 testasynclog.rs 20:trace,aaaaaaa,1,2,3 [DEBUG] 20:03:32 testasynclog.rs 21:debug,aaaaaaa,1,2,3 [INFO] 20:03:32 testasynclog.rs 22:info,bbbbbbbbb,1,2,3 [WARN] 20:03:32 testasynclog.rs 23:warn,cccccccccc,1,2,3 [ERROR] 20:03:32 testasynclog.rs 24:error,ddddddddddddd,1,2,3 [FATAL] 20:03:32 testasynclog.rs 25:fatal,eeeeeeeeeeeeee,1,2,3 多实例异步 use std::sync::Arc;use tklog::{async_debugs, async_errors, async_fatals, async_infos, async_traces, async_warns, LEVEL, Format, ASYNC_LOG, MODE }; #[tokio::test] async fn testmultilogs() {//新建 Async::Logger 对象let mut log tklog::Async::Logger::new();log.set_console(false).set_level(LEVEL::Debug).set_cutmode_by_time(tklogasync.log, MODE::DAY, 10, true) .await.set_formatter({message} | {time} {file}{level});let mut logger Arc::clone(Arc::new(Mutex::new(log)));let log logger.borrow_mut();async_traces!(log, async_traces, AAAAAAAAAA, 1, 2, 3);async_debugs!(log, async_debugs, BBBBBBBBBB, 1, 2, 3);async_infos!(log, async_infos, CCCCCCCCCC, 1, 2, 3);async_warns!(log, async_warns, DDDDDDDDDD, 1, 2, 3);async_errors!(log, async_errors, EEEEEEEEEEE, 1, 2, 3);async_fatals!(log, async_fatals, FFFFFFFFFFFF, 1, 2, 3);tokio::time::sleep(tokio::time::Duration::from_secs(3)).await; } 输出结果 async_debugs,BBBBBBBBBB,1,2,3 | 2024-05-26 20:10:24 testasynclog.rs 45[DEBUG] async_infos,CCCCCCCCCC,1,2,3 | 2024-05-26 20:10:24 testasynclog.rs 46[INFO] async_warns,DDDDDDDDDD,1,2,3 | 2024-05-26 20:10:24 testasynclog.rs 47[WARN] async_errors,EEEEEEEEEEE,1,2,3 | 2024-05-26 20:10:24 testasynclog.rs 48[ERROR] async_fatals,FFFFFFFFFFFF,1,2,3 | 2024-05-26 20:10:24 testasynclog.rs 49[FATAL] 基准压力测试 test_debug time: [3.3747 µs 3.4599 µs 3.5367 µs]change: [-69.185% -68.009% -66.664%] (p 0.00 0.05)Performance has improved. Found 9 outliers among 100 measurements (9.00%)6 (6.00%) high mild3 (3.00%) high severe 说明时间范围给出了三个数据点分别代表了测试执行时间的最小值3.3747微秒、平均值附近的值3.4599微秒、以及最大值3.5367微秒 test_debug time: [3.8377 µs 3.8881 µs 3.9408 µs]change: [-66.044% -65.200% -64.363%] (p 0.00 0.05)Performance has improved. Found 2 outliers among 100 measurements (2.00%)2 (2.00%) high mild 说明测试运行的时间范围是从3.8377微秒到3.9408微秒覆盖了一个大概的分布情况其中3.8881微秒大约是这段时间内的平均或中位数执行时间 结论日志打印函数性能3 µs/op — 4 µs/op   微妙/次
文章转载自:
http://www.morning.gqhgl.cn.gov.cn.gqhgl.cn
http://www.morning.whothehellami.com.gov.cn.whothehellami.com
http://www.morning.qjfkz.cn.gov.cn.qjfkz.cn
http://www.morning.wrtsm.cn.gov.cn.wrtsm.cn
http://www.morning.mzrqj.cn.gov.cn.mzrqj.cn
http://www.morning.pfkrw.cn.gov.cn.pfkrw.cn
http://www.morning.lbbrw.cn.gov.cn.lbbrw.cn
http://www.morning.hfytgp.cn.gov.cn.hfytgp.cn
http://www.morning.lmfxq.cn.gov.cn.lmfxq.cn
http://www.morning.jqllx.cn.gov.cn.jqllx.cn
http://www.morning.npmx.cn.gov.cn.npmx.cn
http://www.morning.mtsck.cn.gov.cn.mtsck.cn
http://www.morning.cmhkt.cn.gov.cn.cmhkt.cn
http://www.morning.nkpml.cn.gov.cn.nkpml.cn
http://www.morning.jcrfm.cn.gov.cn.jcrfm.cn
http://www.morning.hqmfn.cn.gov.cn.hqmfn.cn
http://www.morning.sfdky.cn.gov.cn.sfdky.cn
http://www.morning.nqfxq.cn.gov.cn.nqfxq.cn
http://www.morning.xflzm.cn.gov.cn.xflzm.cn
http://www.morning.bfrff.cn.gov.cn.bfrff.cn
http://www.morning.thbnt.cn.gov.cn.thbnt.cn
http://www.morning.txnqh.cn.gov.cn.txnqh.cn
http://www.morning.pzwfw.cn.gov.cn.pzwfw.cn
http://www.morning.ckdgj.cn.gov.cn.ckdgj.cn
http://www.morning.hhfwj.cn.gov.cn.hhfwj.cn
http://www.morning.bwfsn.cn.gov.cn.bwfsn.cn
http://www.morning.kpyyf.cn.gov.cn.kpyyf.cn
http://www.morning.nlywq.cn.gov.cn.nlywq.cn
http://www.morning.mnkz.cn.gov.cn.mnkz.cn
http://www.morning.hsksm.cn.gov.cn.hsksm.cn
http://www.morning.dbhnx.cn.gov.cn.dbhnx.cn
http://www.morning.nhzxr.cn.gov.cn.nhzxr.cn
http://www.morning.zrqs.cn.gov.cn.zrqs.cn
http://www.morning.gwsdt.cn.gov.cn.gwsdt.cn
http://www.morning.srsln.cn.gov.cn.srsln.cn
http://www.morning.pyswr.cn.gov.cn.pyswr.cn
http://www.morning.hmtft.cn.gov.cn.hmtft.cn
http://www.morning.bpmnq.cn.gov.cn.bpmnq.cn
http://www.morning.wrtbx.cn.gov.cn.wrtbx.cn
http://www.morning.kghhl.cn.gov.cn.kghhl.cn
http://www.morning.tyklz.cn.gov.cn.tyklz.cn
http://www.morning.zlff.cn.gov.cn.zlff.cn
http://www.morning.kjcll.cn.gov.cn.kjcll.cn
http://www.morning.wklmj.cn.gov.cn.wklmj.cn
http://www.morning.lxfdh.cn.gov.cn.lxfdh.cn
http://www.morning.tqklh.cn.gov.cn.tqklh.cn
http://www.morning.jlktz.cn.gov.cn.jlktz.cn
http://www.morning.rzmsl.cn.gov.cn.rzmsl.cn
http://www.morning.gqfbl.cn.gov.cn.gqfbl.cn
http://www.morning.ysnbq.cn.gov.cn.ysnbq.cn
http://www.morning.cyysq.cn.gov.cn.cyysq.cn
http://www.morning.pjyrl.cn.gov.cn.pjyrl.cn
http://www.morning.gjfym.cn.gov.cn.gjfym.cn
http://www.morning.cwcdr.cn.gov.cn.cwcdr.cn
http://www.morning.tyrlk.cn.gov.cn.tyrlk.cn
http://www.morning.sgfgz.cn.gov.cn.sgfgz.cn
http://www.morning.zfhwm.cn.gov.cn.zfhwm.cn
http://www.morning.frfpx.cn.gov.cn.frfpx.cn
http://www.morning.fhkr.cn.gov.cn.fhkr.cn
http://www.morning.hwljx.cn.gov.cn.hwljx.cn
http://www.morning.jzgxp.cn.gov.cn.jzgxp.cn
http://www.morning.rfqk.cn.gov.cn.rfqk.cn
http://www.morning.trjdr.cn.gov.cn.trjdr.cn
http://www.morning.tdgwg.cn.gov.cn.tdgwg.cn
http://www.morning.trhlb.cn.gov.cn.trhlb.cn
http://www.morning.wbyqy.cn.gov.cn.wbyqy.cn
http://www.morning.pzrrq.cn.gov.cn.pzrrq.cn
http://www.morning.lxfdh.cn.gov.cn.lxfdh.cn
http://www.morning.bjsites.com.gov.cn.bjsites.com
http://www.morning.lqlfj.cn.gov.cn.lqlfj.cn
http://www.morning.lcbgf.cn.gov.cn.lcbgf.cn
http://www.morning.rrxnz.cn.gov.cn.rrxnz.cn
http://www.morning.lqgfm.cn.gov.cn.lqgfm.cn
http://www.morning.uytae.cn.gov.cn.uytae.cn
http://www.morning.litao7.cn.gov.cn.litao7.cn
http://www.morning.wynqg.cn.gov.cn.wynqg.cn
http://www.morning.djpps.cn.gov.cn.djpps.cn
http://www.morning.dwgcx.cn.gov.cn.dwgcx.cn
http://www.morning.qszyd.cn.gov.cn.qszyd.cn
http://www.morning.csjps.cn.gov.cn.csjps.cn
http://www.tj-hxxt.cn/news/253398.html

相关文章:

  • 口碑好的大良网站建设景宁建设局网站官网
  • 福建省住房建设厅网站6如何建设一个好的网站
  • 做一个商城网站需要什么流程网站的用途
  • 济宁城乡住房建设网站优化大师卸载不了
  • 张裕网站建设的目标在线生成小程序
  • 福永做网站的公司买了域名怎么用
  • 网站301的作用关于网站建设请示
  • 如何做电影网站不违法2017年内蒙古建设厅网站
  • 专做农产品的网站有哪些微网站建设微网站建设
  • 360网站安全检测网站空间用万网的 域名不在万网
  • 潍坊网站建设平台帝国cms 商城网站视频教程
  • 课程网站建设中容易出现的问题2023年国内十大新闻
  • 网站一片空白易网 网站建设
  • 如何根据流量选择网站西安推广公司
  • 网站网页框架构架图怎么做网页传奇网址
  • 中山建设银行招聘网站黄石网站建设费用
  • 网站主体负责人平利县城乡建设局网站
  • 济南网站优化网站外贸seo优化公司
  • asp门户网站源码免费网站建站2773
  • js效果炫酷的网站推荐asp.net中文官方网站
  • 手机网站尺寸大小网页设计家乡南京
  • 做网站带阿里云服务器多少钱黄山网站网站建设
  • jsp网站架设腾冲做兼职的网站
  • 在百度做网站怎么做彩票网站为啥链接做两次跳转
  • 免费的游戏网站建设网站怎么做3d商品浏览
  • 网站更换域名seo怎么建立一个平台
  • 制作网站登录东营会计信息网官网报名
  • 做海报的网站类似于创客贴江苏建设电子信息网站
  • 做图文链接网站wordpress企业建站教程 百度 下载
  • 公司网站改版方案仿淘宝网站制作