小编ope*_*onk的帖子

Go/Golang将日志写入文件

我正在尝试使用Golang写入日志文件.

我尝试了几种方法,但都失败了.这是我尝试过的:

func TestLogging(t *testing.T) {
    if !FileExists("logfile") {
        CreateFile("logfile")
    }
    f, err := os.Open("logfile")
    if err != nil {
        t.Fatalf("error: %v", err)
    }

    // attempt #1
    log.SetOutput(io.MultiWriter(os.Stderr, f))
    log.Println("hello, logfile")

    // attempt #2
    log.SetOutput(io.Writer(f))
    log.Println("hello, logfile")

    // attempt #3
    log.SetOutput(f)
    log.Println("hello, logfile")
}

func FileExists(name string) bool {
    if _, err := os.Stat(name); err != nil {
       if os.IsNotExist(err) {
            return false
        }
    }
    return true
}

func CreateFile(name string) error {
    fo, err := os.Create(name)
    if err != …
Run Code Online (Sandbox Code Playgroud)

logging go

90
推荐指数
8
解决办法
9万
查看次数

不同子域的不同名称服务器

假设我有一个网站example.com是通过通用域名注册机构购买的nomcheap.com

我希望所有流向特定子域的流量app.example.com都进入名称服务器,ns1.appserver.com以便为特定的用户应用提供服务。

我也希望所有其他流量(www.example.comhello.example.com*.example.com等)去一个不同的名称服务器从不同的供应商ns1.squaresites.com,所以我可以成为一个综合性网站(认为像一个电子商务WordPress站点)。

原始域注册表没有提供任何名称服务器nomcheap.com

这可能吗?如果是这样,有什么建议吗?

subdomain dns nameservers

8
推荐指数
1
解决办法
7035
查看次数

为什么顺序循环比Go中的并发方法运行得更快?

场景: 我想快速读取一个大文本文件(lorem.txt例如下面的例子中有4.5毫米的行).我在下面的代码中尝试了三种不同的方法.

  1. 非并发顺序处理
  2. 频道和goroutines
  3. Waitgroup和goroutines

伪基准: 这是我在下面运行时获得的典型输出; 下面的输出是快速和肮脏的时间增量,而不是完整的剖析/台架标记/测试.

sequential:     43.541828091 secs 4714074 lines
queued channel: 80.986544385 secs 4714074 lines
wait group:     260.200473751 secs 4712266 lines
Run Code Online (Sandbox Code Playgroud)

问题: 为什么顺序循环比下面的其他两种方法更快?我错过了什么吗?

更新 我在更大的文本文件上运行示例代码(请参阅方案).我还为每个示例"重置"记录器,以防万一不这样做会在示例函数之间产生一些复合内存问题.还有其他人注意到,我的电脑是双核的,这可能是我的代码的许多问题之一.感谢所有反馈/答案.

package main

import (
    "bufio"
    "bytes"
    "fmt"
    "log"
    "os"
    "sync"
    "time"
)

var (
    textFile = "lorem.txt"
    buf      bytes.Buffer
    l        = log.New(&buf, "logger: ", log.Lshortfile)
    wg       sync.WaitGroup
    delta1   float64
    delta2   float64
    delta3   float64
    cnt1     = 0
    cnt2     = 0
    cnt3     = 0
)

func main() {

    // …
Run Code Online (Sandbox Code Playgroud)

concurrency go

3
推荐指数
1
解决办法
517
查看次数

使用 AWS Glue 从 S3 -> RDS 移动数据

AWS Glue 是否提供将数据从 S3 存储桶移动到 RDS 数据库的能力?

我正在尝试设置无服务器应用程序,以获取上传到 S3 的动态数据并将其迁移到 RDS。

Glue 提供确定架构的爬虫服务。

Glue 还提供 ETL 作业,但这似乎是目标源只是另一个 S3 存储桶的地方。

有任何想法吗?

amazon-s3 amazon-web-services amazon-rds aws-glue

3
推荐指数
1
解决办法
6772
查看次数