Log



Log(...msgs)

参数```msg```为输出的内容,参数```msg```可以传多个。

msg
false
string / number / bool / object / array / any (平台支持的任意类型)

```javascript
function main() {
    Log("msg1", "msg2", "msg3")
}
def main():
    Log("msg1", "msg2", "msg3")
void main() {
    Log("msg1", "msg2", "msg3");
}

可以传多个msg参数:

function main() {
    Log("发明者量化你好 !@")
    Sleep(1000 * 5)
    // 字符串内加入#ff0000,打印日志显示为红色,并且推送消息
    Log("你好, #ff0000@")
}
def main():
    Log("发明者量化你好 !@")
    Sleep(1000 * 5)
    Log("你好, #ff0000@")
void main() {
    Log("发明者量化你好 !@");
    Sleep(1000 * 5);
    Log("你好, #ff0000@");
}

支持设置输出消息的颜色,如果设置颜色和推送同时使用,需要先设置颜色,最后使用@字符设置推送。

function main() {
    Log("`data:image/png;base64,AAAA`")
}
def main():
    Log("`data:image/png;base64,AAAA`")
void main() {
    Log("`data:image/png;base64,AAAA`");
}

```python
import matplotlib.pyplot as plt 
def main(): 
    plt.plot([3,6,2,4,7,1]) 
    Log(plt)

```javascript
function main() {
    Log("[trans]中文|abc[/trans]")
}
def main():
    Log("[trans]中文|abc[/trans]")
void main() {
    Log("[trans]中文|abc[/trans]");
}


```Log()```函数在实盘或者回测系统的日志区域输出一条日志信息,实盘运行时日志会保存在实盘的数据库中。```Log()```函数输出的内容以```@```字符结尾则这条日志会进入消息推送队列。推送到当前发明者量化交易平台账号[推送设置](https://www.fmz.com/m/account)中配置的邮箱、WebHook地址等。[调试工具](https://www.fmz.com/m/debug)、回测系统不支持消息推送。消息推送有频率限制,具体限制规则如下:在一个实盘20秒周期内,只有最后一条推送消息会被保留并进行推送,其它消息将被过滤,不进行推送(通过 Log 函数输出的推送日志会正常打印显示在日志区域)。

关于```WebHook```推送,可以使用```Golang```编写的服务程序:
```golang
package main

import (
    "fmt"
    "net/http"
)            

func Handle (w http.ResponseWriter, r *http.Request) {
    defer func() {
        fmt.Println("req:", *r)
    }()
}            

func main () {
    fmt.Println("listen http://localhost:9090")
    http.HandleFunc("/data", Handle)
    http.ListenAndServe(":9090", nil)
}

推送设置中设置WebHookhttp://XXX.XX.XXX.XX:9090/data?data=Hello_FMZ,运行写好的Golang服务程序后,开始实盘运行策略,以下为JavaScript语言编写的策略,策略运行时执行Log()函数并推送消息:

function main() {
    Log("msg", "@")
}
```log
listen http://localhost:9090

req: {GET /data?data=Hello_FMZ HTTP/1.1 1 1
map[User-Agent:[Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/xx.x.xxxx.xxx
Safari/537.36] Accept-Encoding:[gzip]] {} <nil> 0 [] false
1XX.XX.X.XX:9090 map[] map[] <nil> map[] XXX.XX.XXX.XX:4xxx2
/data?data=Hello_FMZ <nil> <nil> <nil> 0xc420056300

{@fun/Log/LogReset LogReset}, {@fun/Log/LogVacuum LogVacuum}