1. 程式人生 > 其它 >Go 語言 app.conf配置檔案

Go 語言 app.conf配置檔案

概覽

app.conf為應用程式的配置檔案,它使用goconfig的語法,與windows的ini檔案類似。

示例:

app.name=chat
app.secret=pJLzyoiDe17L36mytqC912j81PfTiolHm1veQK6Grn1En3YFdB5lvEHVTwFEaWvj
http.addr=
http.port=9000

[dev]
results.pretty=true
watch=true

log.trace.output = off
log.info.output  = stderr
log.warn.output  = stderr
log.error.output = stderr

[prod]
results.pretty=false
watch=false

log.trace.output = off
log.info.output  = off
log.warn.output  = %(app.name)s.log
log.error.output = %(app.name)s.log

每一個段落都是一個執行模式,在最頂層不屬於任何一個段落的欄位,應用於所有執行模式。[prod]段落下的欄位應用於生產模式。這樣允許為所有的執行模式提供預設值,然後根據需要覆蓋。

通過給revel run引數可以給指定應用程式相應的執行模式。

自定義屬性

開發者可以通過revel.Config變數訪問自定義屬性,它暴露了簡單的api。

內建屬性

應用程式設定

  • app.name

人類可讀的應用程式名稱。通常用於一些控制檯輸出和開發的網頁。示例:

app.name = Booking example application

預設值:空

  • app.secret

金鑰用於加密操作(revel.Sign)。revel通常用它進行會話cookie的簽名。通過設定空字串來禁用簽名功能。

初始化一個新的專案時,它被設定為一個隨機的字串(如使用revel new建立專案時)。示例:

app.secret = pJLzyoiDe17L36mytqC912j81PfTiolHm1veQK6Grn1En3YFdB5lvEHVTwFEaWvj

預設值:空

HTTP設定

  • http.port

監聽的埠。示例:

http.port = 9000
  • http.addr

用於監聽的IP地址。在linux上,空的字串表示萬用字元- 在windows上,空的字串會被轉為"localhost"

預設值:””

  • harness.port

當被harness前置執行時,用於指定應用程式的監聽埠。例如, 當harness執行時, 它會在http.port埠監聽, 然後在harness.port埠執行程式, 然後對請求進行反向代理。 如果沒有harness, 應用程式則直接監聽http.port.

預設情況下,會選擇一個隨機的埠。這僅僅用於當執行在環境限制使用套接字訪問程式時。

預設:0

  • http.ssl

如果為true, revel會配置自己允許接受SSL請求, 這需要X509證書和金鑰檔案。

預設值:false

  • http.sslcert

指定X509證書檔案的路徑

預設值: ””

  • http.sslkey

指定X509證書金鑰

預設值: ””

Results

  • results.chunked

判斷是否使用chunked編碼來渲染模板。chunked編碼可以在模板被完全渲染之前向客戶端傳送首個位元組用以縮短時間。

預設值:false

  • results.pretty

配置RenderXmlRenderJson產生縮排的XML/JSON。示例:

results.pretty = true

預設值:false

國際化 (i18n)

  • i18n.default_language

當請求的local不被接受時,使用的預設語言。如果未指定,則向請求返回虛擬的訊息。示例:

i18n.default_language = en

預設值:””

  • i18n.cookie

儲存用於指定使用者local設定的cookie名。

預設值:“%(cookie.prefix)_LANG” (see cookie.prefix)

觀察器

revel觀察整個專案,並且支援多種型別來源的熱過載。開啟觀察器:

watch = true

如果是false, 什麼都不會被觀察,並忽略其他watch.*配置屬性. (這可以適當的用於生產部署)

預設值:true

  • watch.templates

如果是true, revel會觀察試圖的變化並在必要的時候過載它們

預設值:true

  • watch.routes 如果為true, revel會觀察路由檔案的變化並在必要的時候過載它

預設值:true

  • watch.code

如果為true, revel會觀察Go原始碼的變化並在必要時重新編譯應用程式。(這需要執行harness作為應用程式的前置)

應用程式的app/目錄的原始碼都會被觀察。(或者任何子目錄下的原始碼)

預設值:true

Cookies

revel組建預設使用下列cookies:

REVEL_SESSION
REVEL_LANG
REVEL_FLASH
REVEL_ERRORS
  • cookie.prefix

revel在cookie名字中使用的字首. 這是為了讓多個revel程式存在一個域上。示例:

cookie.prefix = MY

這樣將會導致以下cookie名:

MY_SESSION
MY_LANG
MY_FLASH
MY_ERRORS

預設值:“REVEL”

格式化

  • format.date

指定預設情況下日期的格式化字串. revel將在兩個地方使用它:

繫結日期引數至time.Time型別

使用模板函式date輸出日期

預設值:“2006-01-02”

  • format.datetime

指定預設情況下時間的格式化字串. revel將在兩個地方使用它:

繫結日期引數至time.Time型別

使用模板函式date輸出日期

預設值:“2006-01-02 15:04”

資料庫

  • db.import

指定需要匯入的database/sql驅動模組的路徑

預設值:””

  • db.driver

指定database/sql介面型別驅動的名稱(用於sql.Open

預設值:””

  • db.spec

指定database/sql介面型別驅動的資料庫名(用於sql.Open

預設值:””

構建

  • build.tags

構建程式是所指定的構建標籤

預設值:””

Logging

TODO (移步: http://www.cnblogs.com/hangxin1940/p/3270581.html

Cache

快取模組介面。

  • cache.expires

設定快取資料的過期時間。用於呼叫者傳遞cache.DEFAULT常量。

這個字串必須能被time.ParseDuration所接受。

(目前它不能指定為FOREVER)

預設值:“1h” (1小時)

  • cache.memcached

如果是true, 將使用memcached作為記憶體型快取。

預設值:false

  • cache.hosts

一個用逗號分隔的memcached地址列表。快取內容會動態的儲存。可以多次重複地址以提高它的分配比重。

預設值:””

計劃任務

jobs模組可以用來執行計劃任務或者臨時任務。

  • 具名計劃任務

命名的cron計劃任務可以如下方式設定名稱:

cron.schedulename = @hourly

該計劃任務可以在被引用後提交給任務執行器。示例:

jobs.Schedule("cron.schedulename", job)
  • jobs.pool

允許任務同時執行的數量. 示例:

jobs.pool = 4

如果是0, 則沒有限制.

預設值:10

  • jobs.selfconcurrent

如果是true, 允許同一個任務在之前沒有執行完的情況下,再次執行。

預設值:false

模組

modul允許通過它們的匯入路徑來給應用程式新增一個模組。示例:

module.testrunner = github.com/robfig/revel/modules/testrunner