本文整理汇总了Golang中github.com/juju/juju/worker/logsender.InstallBufferedLogWriter函数的典型用法代码示例。如果您正苦于以下问题:Golang InstallBufferedLogWriter函数的具体用法?Golang InstallBufferedLogWriter怎么用?Golang InstallBufferedLogWriter使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了InstallBufferedLogWriter函数的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: SetUpTest
func (s *syslogSuite) SetUpTest(c *gc.C) {
if runtime.GOOS != "linux" {
c.Skip(fmt.Sprintf("this test requires a controller, therefore does not support %q", runtime.GOOS))
}
currentSeries := series.HostSeries()
osFromSeries, err := series.GetOSFromSeries(currentSeries)
c.Assert(err, jc.ErrorIsNil)
if osFromSeries != os.Ubuntu {
c.Skip(fmt.Sprintf("this test requires a controller, therefore does not support OS %q only Ubuntu", osFromSeries.String()))
}
s.AgentSuite.SetUpTest(c)
// TODO(perrito666) 200160701:
// This needs to be done to stop the test from trying to install mongo
// while running, but it is a huge footprint for such little benefit.
// This test should not need JujuConnSuite or AgentSuite.
s.fakeEnsureMongo = agenttest.InstallFakeEnsureMongo(s)
done := make(chan struct{})
s.received = make(chan rfc5424test.Message)
addr := s.createSyslogServer(c, s.received, done)
// Leave log forwarding disabled initially, it will be enabled
// via a model config update in the test.
err = s.State.UpdateModelConfig(map[string]interface{}{
"syslog-host": addr,
"syslog-ca-cert": coretesting.CACert,
"syslog-client-cert": coretesting.ServerCert,
"syslog-client-key": coretesting.ServerKey,
}, nil, nil)
c.Assert(err, jc.ErrorIsNil)
s.logsCh, err = logsender.InstallBufferedLogWriter(1000)
c.Assert(err, jc.ErrorIsNil)
}
示例2: jujuDMain
// Main registers subcommands for the jujud executable, and hands over control
// to the cmd package.
func jujuDMain(args []string, ctx *cmd.Context) (code int, err error) {
// Assuming an average of 200 bytes per log message, use up to
// 200MB for the log buffer.
logCh, err := logsender.InstallBufferedLogWriter(1048576)
if err != nil {
return 1, errors.Trace(err)
}
jujud := jujucmd.NewSuperCommand(cmd.SuperCommandParams{
Name: "jujud",
Doc: jujudDoc,
})
jujud.Log.Factory = &writerFactory{}
jujud.Register(NewBootstrapCommand())
// TODO(katco-): AgentConf type is doing too much. The
// MachineAgent type has called out the separate concerns; the
// AgentConf should be split up to follow suit.
agentConf := agentcmd.NewAgentConf("")
machineAgentFactory := agentcmd.MachineAgentFactoryFn(
agentConf, logCh, looputil.NewLoopDeviceManager(),
)
jujud.Register(agentcmd.NewMachineAgentCmd(ctx, machineAgentFactory, agentConf, agentConf))
jujud.Register(agentcmd.NewUnitAgent(ctx, logCh))
code = cmd.Main(jujud, ctx, args[1:])
return code, nil
}
示例3: runUnitAgentTest
func (s *dblogSuite) runUnitAgentTest(c *gc.C) bool {
// Lease setup stuff, only needed when running a uniter.
m, err := lease.NewLeaseManager(s.State)
c.Assert(err, jc.ErrorIsNil)
s.AddCleanup(func(c *gc.C) {
m.Kill()
c.Assert(m.Wait(), jc.ErrorIsNil)
})
// Create a unit and an agent for it.
u, password := s.Factory.MakeUnitReturningPassword(c, nil)
s.PrimeAgent(c, u.Tag(), password, version.Current)
logsCh, err := logsender.InstallBufferedLogWriter(1000)
c.Assert(err, jc.ErrorIsNil)
a := agentcmd.NewUnitAgent(nil, logsCh)
s.InitAgent(c, a, "--unit-name", u.Name(), "--log-to-stderr=true")
// Ensure there's no logs to begin with.
c.Assert(s.getLogCount(c, u.Tag()), gc.Equals, 0)
// Start the agent.
go func() { c.Assert(a.Run(nil), jc.ErrorIsNil) }()
defer a.Stop()
return s.waitForLogs(c, u.Tag())
}
示例4: jujuDMain
// Main registers subcommands for the jujud executable, and hands over control
// to the cmd package.
func jujuDMain(args []string, ctx *cmd.Context) (code int, err error) {
// Assuming an average of 200 bytes per log message, use up to
// 200MB for the log buffer.
defer logger.Debugf("jujud complete, code %d, err %v", code, err)
logCh, err := logsender.InstallBufferedLogWriter(1048576)
if err != nil {
return 1, errors.Trace(err)
}
jujud := jujucmd.NewSuperCommand(cmd.SuperCommandParams{
Name: "jujud",
Doc: jujudDoc,
})
jujud.Log.NewWriter = func(target io.Writer) loggo.Writer {
return &jujudWriter{target: target}
}
jujud.Register(NewBootstrapCommand())
// TODO(katco-): AgentConf type is doing too much. The
// MachineAgent type has called out the separate concerns; the
// AgentConf should be split up to follow suit.
agentConf := agentcmd.NewAgentConf("")
machineAgentFactory := agentcmd.MachineAgentFactoryFn(agentConf, logCh, "")
jujud.Register(agentcmd.NewMachineAgentCmd(ctx, machineAgentFactory, agentConf, agentConf))
jujud.Register(agentcmd.NewUnitAgent(ctx, logCh))
jujud.Register(NewUpgradeMongoCommand())
code = cmd.Main(jujud, ctx, args[1:])
return code, nil
}
示例5: TestUninstallBufferedLogWriter
func (s *bufferedLogWriterSuite) TestUninstallBufferedLogWriter(c *gc.C) {
_, err := logsender.InstallBufferedLogWriter(10)
c.Assert(err, jc.ErrorIsNil)
err = logsender.UninstallBufferedLogWriter()
c.Assert(err, jc.ErrorIsNil)
// Second uninstall attempt should fail
err = logsender.UninstallBufferedLogWriter()
c.Assert(err, gc.ErrorMatches, "failed to uninstall log buffering: .+")
}
示例6: runUnitAgentTest
func (s *dblogSuite) runUnitAgentTest(c *gc.C) bool {
// Create a unit and an agent for it.
u, password := s.Factory.MakeUnitReturningPassword(c, nil)
s.PrimeAgent(c, u.Tag(), password)
logsCh, err := logsender.InstallBufferedLogWriter(1000)
c.Assert(err, jc.ErrorIsNil)
a := agentcmd.NewUnitAgent(nil, logsCh)
s.InitAgent(c, a, "--unit-name", u.Name(), "--log-to-stderr=true")
// Ensure there's no logs to begin with.
c.Assert(s.getLogCount(c, u.Tag()), gc.Equals, 0)
// Start the agent.
go func() { c.Assert(a.Run(nil), jc.ErrorIsNil) }()
defer a.Stop()
return s.waitForLogs(c, u.Tag())
}
示例7: TestInstallBufferedLogWriter
func (s *bufferedLogWriterSuite) TestInstallBufferedLogWriter(c *gc.C) {
logsCh, err := logsender.InstallBufferedLogWriter(10)
c.Assert(err, jc.ErrorIsNil)
defer logsender.UninstallBufferedLogWriter()
logger := loggo.GetLogger("bufferedLogWriter-test")
for i := 0; i < 5; i++ {
logger.Infof("%d", i)
}
for i := 0; i < 5; i++ {
select {
case rec := <-logsCh:
c.Assert(rec.Message, gc.Equals, strconv.Itoa(i))
case <-time.After(coretesting.LongWait):
c.Fatal("timed out waiting for logs")
}
}
}
示例8: runMachineAgentTest
func (s *dblogSuite) runMachineAgentTest(c *gc.C) bool {
// Create a machine and an agent for it.
m, password := s.Factory.MakeMachineReturningPassword(c, &factory.MachineParams{
Nonce: agent.BootstrapNonce,
})
s.PrimeAgent(c, m.Tag(), password, version.Current)
agentConf := agentcmd.NewAgentConf(s.DataDir())
agentConf.ReadConfig(m.Tag().String())
logsCh, err := logsender.InstallBufferedLogWriter(1000)
c.Assert(err, jc.ErrorIsNil)
machineAgentFactory := agentcmd.MachineAgentFactoryFn(agentConf, agentConf, logsCh, nil)
a := machineAgentFactory(m.Id())
// Ensure there's no logs to begin with.
c.Assert(s.getLogCount(c, m.Tag()), gc.Equals, 0)
// Start the agent.
go func() { c.Check(a.Run(nil), jc.ErrorIsNil) }()
defer a.Stop()
return s.waitForLogs(c, m.Tag())
}
示例9: TestInstallBufferedLogWriterNoFeatureFlag
func (s *bufferedLogWriterSuite) TestInstallBufferedLogWriterNoFeatureFlag(c *gc.C) {
logsCh, err := logsender.InstallBufferedLogWriter(10)
c.Assert(err, jc.ErrorIsNil)
c.Assert(logsCh, gc.IsNil)
}