本篇博客主要介绍如果在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的连接与相关操作。
总浏览量
3,912次
博客园历史 2,661 腾讯云 1,248 本站新增 3
本站阅读按浏览器在 15 分钟内去重;禁用浏览器存储时按网络地址去重。推荐按浏览器一年内去重。仅使用站内随机标识,不采集浏览器指纹。
分享这篇文章
原创内容,未经授权禁止转载。
欢迎分享原文链接。除另有署名或许可说明外,本站原创文章的著作权由青玉伏案享有;未经书面授权,禁止整篇转载、复制发布、改编传播或建立内容镜像。
版权与使用条款
- 依法属于合理使用、法定许可等情形的,按法律规定执行;引用时应注明作者、作品名称和原文链接,不得歪曲、篡改或隐去署名。
- 经书面授权使用的,请遵守约定的用途、范围与署名要求。注明出处不等同于已经取得整篇转载或其他使用授权。
- 第三方图片、引用内容和书籍封面等权利归相应权利人所有;开源代码与 Demo 按其各自许可证使用,本声明不改变已有许可。
- 本声明参考《中华人民共和国著作权法》第十条、第二十四条、第五十二条等。对侵权使用,权利人保留依法要求停止侵害并追究相应责任的权利。

楼主好早阿 Swift3.0能开发服务器端程序了阿
@
i水墨轻烟
是啊,Perfect只是其中的一个框架,还有好多其他的Swift服务端框架~,IBM在维护的那个Swift框架貌似也还不错~
@
青玉伏案
Swift发展的这么快 以后应该能取代Asp.net
@
i水墨轻烟
这个不好说,虽然Swift语言尚未稳定,存在版本更新快,向下不兼容等问题,不过Swift还是不错的一门编程语言的。足够优雅~
虽然Swift的创始人跳槽到了特斯拉,不过Swift毕竟是亲生的,而且还开源了,发展还是比较不错的~
Hi, 您好, 请问下您这系列文章是译文还是原创的 ? 因为我发现 dabfleming/Perfect-RequestLogger 这个 package 安装不了, 查了很久才发现应该是 PerfectlySoft/Perfect-RequestLogger....如果是译文可以给下原文的链接吗 ? 感谢.
@
Bigtreenono
上面这篇博客是原创的,依赖库的链接地址是有可能会变的,这个要看官网上提供的~
@
青玉伏案
感谢您快速的回复, 请问下您有安装 Perfect Assistant 吗, 我在安装 Docker 的时候一直在提示 starting docker image pull...Docker status 一直显示 inactive, docker image is downloading
dabfleming/Perfect-RequestLogger 这个 package 安装不了官网提示用这个
.Package(url: ".../PerfectlySoft/Perfect-RequestLogger.git", majorVersion: 1)