博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Swift3.0服务端开发(三) Mustache页面模板与日志记录
阅读量:5105 次
发布时间:2019-06-13

本文共 1775 字,大约阅读时间需要 5 分钟。

本篇博客主要介绍如果在Perfect工程中引入和使用Mustache页面模板日志记录系统Mustache页面模板类似于PHP中的smarty模板引擎或者Java中的JSTL标签。当然Mustache页面模板的功能要弱的多。Mustache页面模板的主要功能是将html页面中的标签变量(比如“{

{name}}”)进行替换,要想引入Mustache页面模板相关的库,只需要在Package.swift文件中添加相应的库的连接地址然后再编译连接即可。本篇博客还会介绍如果将日志记录到相应的日志文件,在开发中日志是不可或缺的,所以日志系统的引入与配置也是必不可少的。

下方会对Mustache页面模板与日志系统的配置进行介绍。

 

一、Mustache页面模板

1.Mustache页面模板的引入

Mustache对应的模板地址包如下:

.Package(

url: "https://github.com/PerfectlySoft/Perfect-Mustache.git",
majorVersion: 2, minor: 0
)

我们需要在Package.swift文件中进行依赖包的配置,如下所示。引入包后,使用命令行进行编译:"swift build"即可。如果你的项目是使用Xcode进行编译的话,还需要重新执行“swift package generate-xcodeproj”命令再次生成xcodeproj文件即可。

  

 

2.Mustache页面模板的使用

首先我们在相应的静态页面中添加上相应的标签,我们还是以上篇博客中使用到的index.html为例,在该html页面中,添加上相应的标签,该标签会被替换成相应的内容。下方的标签为{

{title}}。

  

处理完静态页面,然后我们该处理服务端的代码了。下方代码是从Prefect的官方文档上摘下来的,不过改了一下Value的key。所有处理Mustache页面模板的句柄都需要继承自MustachePageHandler,在extendValuesForResponse()方法中进行模板变量的处理,如下所示:

  

下方是对index.html进行重定向,将index.html交给上述的处理句柄进行处理。

  

上述实例的运行结果如下,{

{title}}被换成了Swift用户,如下所示:

  

 

二、日志系统的配置与使用

日志系统在服务端开发中是不可或缺的,接下来我们要做的事情是讲每次请求或者相应的内容写入到日志文件中,当然平时调试打印的一些信息也可以输出到日志文件中。接下来,我们就要来介绍一下Perfect框架中日志系统的引入和使用方式。

 

1.引入日志相关包

要做到上述的功能,我们需要引入下方的两个依赖包。引入包后与上述页面模板的做法一致,还是需要重新使用命令行编译和运行工程的,当然要重新生成xcodeproj文件。在此就不做过多赘述了。

//Request请求日志过滤器

.Package(url: "https://github.com/dabfleming/Perfect-RequestLogger.git",
majorVersion: 0),
//将日志写入指定文件
.Package(url: "https://github.com/PerfectlySoft/Perfect-Logger.git",
majorVersion: 0, minor: 0),

 

2.将日志写入文件

接下来我们就可以调用日志系统将日志写入指定的文件了,首先我们需要检查存储日志文件的目录是否存在,如果不存在就创建。创建完毕后,将该目录赋值给日志系统的文件目录即可,如下第一个框中的内容。然后添加请求和相应的日志过滤器。最下方的框是LogFile的几个方法的使用,这些信息都会被存储到相应的文件。

   

进行上述配置后,我们还需要将RequestLogger()中的日志输出形式切换成LogFile的形式,如下所示:

  

配置完毕后,我们就可以使用日志系统进行日志输出了,最终结果如下所示:

  

 

今天的博客就先到这而把,下篇博客会介绍MySql的连接与相关操作。

转载于:https://www.cnblogs.com/ludashi/p/6164931.html

你可能感兴趣的文章
References in C++
查看>>
python(4)-- 日期 & 时间
查看>>
幅相曲线渐近线_若最小相位系统的低频段幅频特性的渐近线是一条斜率为20dB/dec的直线,则该系统( )。_学小易找答案...
查看>>
离线linux下python安装pip包_离线安装pip包
查看>>
平流式沉淀池计算例题_(完整版)平流沉淀池设计计算.doc
查看>>
for循环下标 shell_shell中的for循环用法
查看>>
ha linux 设置虚拟ip_Linux-配置虚拟IP实例
查看>>
if else进程_PHP多进程处理tcp连接
查看>>
go http获取ajax参数_Go语言基础(十二)
查看>>
docker commit构建镜像的优缺点_Linux运维-Docker|06.使用官方Dockerfile构建镜像
查看>>
c++输出数组时如何使元素之间用逗号隔开_JavaScript数组 - 概念
查看>>
android左右滑动实现翻页_'墨羲的墨案阅读器' 插件分享 : 手势翻页脚本...
查看>>
最全最新cpu显卡天梯图_台式机cpu天梯图2019年6月最新版
查看>>
ur机械臂 控制器_机械臂技术<1>-全栈浅析
查看>>
刀塔霸业android如何更新_刀塔霸业7月19日更新,游戏节奏加快,太古联盟崛起...
查看>>
foxmail 怎么修改存储路径_jupyter notebook修改默认存储路径
查看>>
redis集群scan_10个Redis使用技巧
查看>>
stm32f407能跑linux吗_水箱进机油了,如果修理机油用放掉吗?不修还能跑吗?
查看>>
wps在线预览接口_easypoi 4.2 更新,支持在线预览,基于 wps 云服务
查看>>
原理 数据库关系图_一款免费数据库管理工具,比 Navicat 更好有用,功能更强大,强烈推荐!...
查看>>