本文整理匯總了Golang中github.com/getlantern/golog.LoggerFor函數的典型用法代碼示例。如果您正苦於以下問題:Golang LoggerFor函數的具體用法?Golang LoggerFor怎麽用?Golang LoggerFor使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了LoggerFor函數的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: TestLoggly
func TestLoggly(t *testing.T) {
var buf bytes.Buffer
var result map[string]interface{}
loggly := loggly.New("token not required")
loggly.Writer = &buf
lw := logglyErrorWriter{client: loggly}
golog.SetOutputs(lw, nil)
log := golog.LoggerFor("test")
log.Error("")
if assert.NoError(t, json.Unmarshal(buf.Bytes(), &result), "Unmarshal error") {
assert.Equal(t, "ERROR test", result["locationInfo"])
assert.Regexp(t, regexp.MustCompile("logging_test.go:([0-9]+)"), result["message"])
}
buf.Reset()
log.Error("short message")
if assert.NoError(t, json.Unmarshal(buf.Bytes(), &result), "Unmarshal error") {
assert.Equal(t, "ERROR test", result["locationInfo"])
assert.Regexp(t, regexp.MustCompile("logging_test.go:([0-9]+) short message"), result["message"])
}
buf.Reset()
log.Error("message with: reason")
if assert.NoError(t, json.Unmarshal(buf.Bytes(), &result), "Unmarshal error") {
assert.Equal(t, "ERROR test", result["locationInfo"])
assert.Regexp(t, "logging_test.go:([0-9]+) message with: reason", result["message"])
}
buf.Reset()
log.Error("deep reason: message with: reason")
if assert.NoError(t, json.Unmarshal(buf.Bytes(), &result), "Unmarshal error") {
assert.Equal(t, "ERROR test", result["locationInfo"])
assert.Equal(t, "message with: reason", result["message"], "message should be last 2 chunks")
}
buf.Reset()
log.Error("deep reason: an url https://a.com in message: reason")
if assert.NoError(t, json.Unmarshal(buf.Bytes(), &result), "Unmarshal error") {
assert.Equal(t, "an url https://a.com in message: reason", result["message"], "should not truncate url")
}
buf.Reset()
log.Error("deep reason: an url 127.0.0.1:8787 in message: reason")
if assert.NoError(t, json.Unmarshal(buf.Bytes(), &result), "Unmarshal error") {
assert.Equal(t, "ERROR test", result["locationInfo"])
assert.Equal(t, "an url 127.0.0.1:8787 in message: reason", result["message"], "should not truncate url")
}
buf.Reset()
longPrefix := "message with: really l"
longMsg := longPrefix + strings.Repeat("o", 100) + "ng reason"
log.Error(longMsg)
if assert.NoError(t, json.Unmarshal(buf.Bytes(), &result), "Unmarshal error") {
assert.Equal(t, "ERROR test", result["locationInfo"])
assert.Regexp(t, regexp.MustCompile("logging_test.go:([0-9]+) "+longPrefix+"(o+)"), result["message"])
assert.Equal(t, 100, len(result["message"].(string)))
}
}
示例2: sendTestRequest
func sendTestRequest(client *http.Client, addr string) error {
log := golog.LoggerFor("protected")
req, err := http.NewRequest("GET", "http://"+addr+"/", nil)
if err != nil {
return fmt.Errorf("Error constructing new HTTP request: %s", err)
}
req.Header.Add("Connection", "keep-alive")
resp, err := client.Do(req)
if err != nil {
return fmt.Errorf("Could not make request to %s: %s", addr, err)
}
_, err = ioutil.ReadAll(resp.Body)
if err != nil {
return fmt.Errorf("Error reading response body: %s", err)
}
resp.Body.Close()
log.Debugf("Successfully processed request to %s", addr)
return nil
}
示例3: GetLocation
"github.com/getlantern/golog"
"github.com/getlantern/flashlight/pubsub"
"github.com/getlantern/flashlight/ui"
)
const (
messageType = `GeoLookup`
basePublishSeconds = 30
publishSecondsVariance = basePublishSeconds - 10
retryWaitMillis = 100
)
var (
log = golog.LoggerFor("flashlight.geolookup")
service *ui.Service
client atomic.Value
cfgMutex sync.Mutex
location atomic.Value
)
func GetLocation() *geolookup.City {
l := location.Load()
if l == nil {
return nil
}
return l.(*geolookup.City)
}
示例4:
"github.com/getlantern/flashlight/client"
"github.com/getlantern/flashlight/globals"
"github.com/getlantern/flashlight/server"
"github.com/getlantern/flashlight/statreporter"
)
const (
CloudConfigPollInterval = 1 * time.Minute
cloudflare = "cloudflare"
etag = "X-Lantern-Etag"
ifNoneMatch = "X-Lantern-If-None-Match"
)
var (
log = golog.LoggerFor("flashlight.config")
m *yamlconf.Manager
lastCloudConfigETag = map[string]string{}
httpClient atomic.Value
)
type Config struct {
Version int
CloudConfig string
CloudConfigCA string
Addr string
Role string
InstanceId string
CpuProfile string
MemProfile string
UIAddr string // UI HTTP server address
示例5: main
import (
"os"
"runtime"
"sync"
"github.com/getlantern/aws-sdk-go/gen/cloudfront"
"github.com/getlantern/golog"
"github.com/getlantern/peerscanner/cfr"
)
const (
COMMENT = "TEST -- DELETE"
)
var (
log = golog.LoggerFor("cfrjanitor")
)
func main() {
numProcs := runtime.NumCPU() * 2
runtime.GOMAXPROCS(numProcs)
numWorkers := numProcs * 4
c := getCfr()
workCh := make(chan *cfr.Distribution)
wg := sync.WaitGroup{}
wg.Add(numWorkers)
log.Debugf("Spawning %v workers", numWorkers)
for i := 0; i < numWorkers; i++ {
go work(c, workCh, &wg)
}
dists, err := cfr.ListDistributions(c)
示例6:
"sync"
"time"
"github.com/getlantern/connpool"
"github.com/getlantern/enproxy"
"github.com/getlantern/golog"
"github.com/getlantern/proxy"
"github.com/getlantern/tlsdialer"
)
const (
CONNECT = "CONNECT" // HTTP CONNECT method
)
var (
log = golog.LoggerFor("fronted")
// Cutoff for logging warnings about a dial having taken a long time.
longDialLimit = 10 * time.Second
// idleTimeout needs to be small enough that we stop using connections
// before the upstream server/CDN closes them itself.
// TODO: make this configurable.
idleTimeout = 10 * time.Second
)
// Dialer is a domain-fronted proxy.Dialer.
type Dialer interface {
proxy.Dialer
// HttpClientUsing creates a simple domain-fronted HTTP client using the
示例7:
var (
help = flag.Bool("help", false, "Get usage help")
masqueradesInFile = flag.String("masquerades", "", "Path to file containing list of pasquerades to use, with one space-separated 'ip domain' pair per line (e.g. masquerades.txt)")
masqueradesOutFile = flag.String("masquerades-out", "", "Path, if any, to write the go-formatted masquerades configuration.")
blacklistFile = flag.String("blacklist", "", "Path to file containing list of blacklisted domains, which will be excluded from the configuration even if present in the masquerades file (e.g. blacklist.txt)")
proxiedSitesDir = flag.String("proxiedsites", "proxiedsites", "Path to directory containing proxied site lists, which will be combined and proxied by Lantern")
proxiedSitesOutFile = flag.String("proxiedsites-out", "", "Path, if any, to write the go-formatted proxied sites configuration.")
minFreq = flag.Float64("minfreq", 3.0, "Minimum frequency (percentage) for including CA cert in list of trusted certs, defaults to 3.0%")
fallbacksFile = flag.String("fallbacks", "fallbacks.yaml", "File containing yaml dict of fallback information")
fallbacksOutFile = flag.String("fallbacks-out", "", "Path, if any, to write the go-formatted fallback configuration.")
)
var (
log = golog.LoggerFor("genconfig")
masquerades []string
blacklist = make(filter)
proxiedSites = make(filter)
fallbacks map[string]*client.ChainedServerInfo
ftVersion string
inputCh = make(chan string)
masqueradesCh = make(chan *masquerade)
wg sync.WaitGroup
)
type filter map[string]bool
示例8: New
"net/http"
"net/http/httputil"
"strconv"
"time"
"github.com/getlantern/errors"
"github.com/getlantern/golog"
"github.com/getlantern/idletiming"
"github.com/getlantern/ops"
"github.com/getlantern/proxy"
"github.com/getlantern/http-proxy/buffers"
"github.com/getlantern/http-proxy/filters"
)
var log = golog.LoggerFor("httpconnect")
type Options struct {
IdleTimeout time.Duration
AllowedPorts []int
Dialer func(network, address string) (net.Conn, error)
}
type httpConnectHandler struct {
*Options
intercept proxy.Interceptor
}
func New(opts *Options) filters.Filter {
if opts.Dialer == nil {
opts.Dialer = func(network, address string) (net.Conn, error) {
示例9: New
r Reporter
}
// Measured is the controller to report statistics
type Measured struct {
reporters []Reporter
maxBufferSize int
chTraffic chan *Traffic
traffic map[string]*TrafficTracker
chStop chan struct{}
stopped int32
mutex sync.Mutex
}
var (
log = golog.LoggerFor("measured")
)
// DialFunc is the type of function measured can wrap
type DialFunc func(net, addr string) (net.Conn, error)
// New creates a new Measured instance
func New(maxBufferSize int) *Measured {
return &Measured{
maxBufferSize: maxBufferSize,
chTraffic: make(chan *Traffic, maxBufferSize),
traffic: make(map[string]*TrafficTracker, maxBufferSize),
chStop: make(chan struct{}),
stopped: 1,
}
}
示例10: Configure
"sync"
"github.com/getlantern/detour"
"github.com/getlantern/golog"
"github.com/getlantern/proxiedsites"
"github.com/getlantern/flashlight/config"
"github.com/getlantern/flashlight/ui"
)
const (
messageType = `ProxiedSites`
)
var (
log = golog.LoggerFor("flashlight.proxiedsites")
service *ui.Service
PACURL string
startMutex sync.Mutex
)
func Configure(cfg *proxiedsites.Config) {
delta := proxiedsites.Configure(cfg)
startMutex.Lock()
if delta != nil {
updateDetour(delta)
}
if service == nil {
// Initializing service.
示例11:
"github.com/getlantern/go-igdman/igdman"
"github.com/getlantern/golog"
"github.com/getlantern/yaml"
"github.com/hashicorp/golang-lru"
"github.com/getlantern/flashlight/globals"
"github.com/getlantern/flashlight/statreporter"
"github.com/getlantern/flashlight/statserver"
)
const (
PortmapFailure = 50
)
var (
log = golog.LoggerFor("flashlight.server")
registerPeriod = 5 * time.Minute
frontingProviders = map[string]func(*http.Request) bool{
// WARNING: If you add a provider here, keep in mind that Go's http
// library normalizes all header names so the first letter of every
// dash-separated "word" is uppercase while all others are lowercase.
// Also, try and check more than one header to lean on the safe side.
"cloudflare": func(req *http.Request) bool {
return hasHeader(req, "Cf-Connecting-Ip") || hasHeader(req, "Cf-Ipcountry") || hasHeader(req, "Cf-Ray") || hasHeader(req, "Cf-Visitor")
},
"cloudfront": func(req *http.Request) bool {
return hasHeader(req, "X-Amz-Cf-Id") || headerMatches(req, "User-Agent", "Amazon Cloudfront")
},
}
)
示例12:
"github.com/getlantern/flashlight/client"
"github.com/getlantern/golog"
socks "github.com/getlantern/lantern-mobile/lantern/socks"
)
// Errors introduced by the interceptor service
var (
defaultClient Interceptor
dialTimeout = 20 * time.Second
// threshold of errors that we are withstanding
maxErrCount = 15
statsInterval = 15 * time.Second
log = golog.LoggerFor("lantern-android.interceptor")
ErrTooManyFailures = errors.New("Too many connection failures")
ErrNoSocksProxy = errors.New("Unable to start local SOCKS proxy")
ErrDialTimeout = errors.New("Error dialing tunnel: timeout")
)
type DialFunc func(network, addr string) (net.Conn, error)
// Interceptor is responsible for intercepting
// traffic on the VPN interface.
type Interceptor struct {
client *client.Client
clientGone bool
示例13: NewLimitedListener
package listeners
import (
"errors"
"math"
"net"
"net/http"
"sync/atomic"
"time"
"github.com/getlantern/golog"
)
var (
log = golog.LoggerFor("listeners")
)
type limitedListener struct {
net.Listener
maxConns uint64
numConns uint64
idleTimeout time.Duration
stopped int32
stop chan bool
restart chan bool
}
func NewLimitedListener(l net.Listener, maxConns uint64) net.Listener {
if maxConns <= 0 {
示例14:
"net/url"
"runtime"
"strconv"
"github.com/getlantern/flashlight/util"
"github.com/getlantern/golog"
)
const (
ApiEndpoint = `https://ssl.google-analytics.com/collect`
ProtocolVersion = "1"
DefaultInstanceId = "555"
)
var (
log = golog.LoggerFor("analytics")
httpClient *http.Client
ip string
)
type HitType string
const (
PageViewType HitType = "pageview"
EventType HitType = "event"
)
type PageView struct {
Hostname string `param:"dh"`
Pagename string `param:"dp"`
Title string `param:"dt"`
示例15: New
// clients can make requests to specific domains.
package ratelimiter
import (
"fmt"
"net"
"net/http"
"sync"
"time"
"github.com/getlantern/golog"
"github.com/getlantern/http-proxy/filters"
"github.com/hashicorp/golang-lru"
)
var log = golog.LoggerFor("ratelimiter")
type ratelimiter struct {
hostPeriods map[string]time.Duration
hostAccessesByClient *lru.Cache
mx sync.Mutex
}
// New creates a new rate limiting filter that only allows access to the hosts
// listed in the given hostPeriods, and limits the periodicity of requests to
// each host to the given duration. It limits the number of clients tracked to
// the the numClients with the most recent activity.
func New(numClients int, hostPeriods map[string]time.Duration) filters.Filter {
if numClients <= 0 {
numClients = 5000
}