本文整理汇总了C#中LoggerResult.Info方法的典型用法代码示例。如果您正苦于以下问题:C# LoggerResult.Info方法的具体用法?C# LoggerResult.Info怎么用?C# LoggerResult.Info使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LoggerResult
的用法示例。
在下文中一共展示了LoggerResult.Info方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: TestLocalLogger
public void TestLocalLogger()
{
var log = new LoggerResult();
log.Info("#0");
Assert.That(log.Messages.Count, Is.EqualTo(1));
Assert.That(log.Messages[0].Type, Is.EqualTo(LogMessageType.Info));
Assert.That(log.Messages[0].Text, Is.EqualTo("#0"));
log.Info("#{0}", 1);
Assert.That(log.Messages.Count, Is.EqualTo(2));
Assert.That(log.Messages[1].Type, Is.EqualTo(LogMessageType.Info));
Assert.That(log.Messages[1].Text, Is.EqualTo("#1"));
Assert.That(log.HasErrors, Is.False);
log.Error("#2");
Assert.That(log.Messages.Count, Is.EqualTo(3));
Assert.That(log.Messages[2].Type, Is.EqualTo(LogMessageType.Error));
Assert.That(log.Messages[2].Text, Is.EqualTo("#2"));
Assert.That(log.HasErrors, Is.True);
log.Error("#{0}", 3);
Assert.That(log.Messages.Count, Is.EqualTo(4));
Assert.That(log.Messages[3].Type, Is.EqualTo(LogMessageType.Error));
Assert.That(log.Messages[3].Text, Is.EqualTo("#3"));
// Activate log from Info to Fatal. Verbose won't be logged.
log.ActivateLog(LogMessageType.Info);
log.Verbose("#4");
Assert.That(log.Messages.Count, Is.EqualTo(4));
// Activate log from Verbose to Fatal. Verbose will be logged
log.ActivateLog(LogMessageType.Verbose);
log.Verbose("#4");
Assert.That(log.Messages.Count, Is.EqualTo(5));
// Activate log from Info to Fatal and only Debug. Verbose won't be logged.
log.ActivateLog(LogMessageType.Info);
log.ActivateLog(LogMessageType.Debug, true);
log.Verbose("#5");
log.Debug("#6");
Assert.That(log.Messages.Count, Is.EqualTo(6));
Assert.That(log.Messages[5].Text, Is.EqualTo("#6"));
}
示例2: CompileBytecode
private EffectBytecodeCompilerResult CompileBytecode(ShaderMixinSource mixinTree, CompilerParameters compilerParameters, ObjectId mixinObjectId, DatabaseFileProvider database, string compiledUrl, ShaderMixinParameters usedParameters)
{
// Open the database for writing
var log = new LoggerResult();
// Note: this compiler is expected to not be async and directly write stuff in localLogger
var compiledShader = base.Compile(mixinTree, compilerParameters).WaitForResult();
compiledShader.CompilationLog.CopyTo(log);
// If there are any errors, return immediately
if (log.HasErrors)
{
lock (compilingShaders)
{
compilingShaders.Remove(mixinObjectId);
}
return new EffectBytecodeCompilerResult(null, log);
}
// Compute the bytecodeId
var newBytecodeId = compiledShader.Bytecode.ComputeId();
// Check if we really need to store the bytecode
lock (bytecodes)
{
// Using custom serialization to the database to store an object with a custom id
// TODO: Check if we really need to write the bytecode everytime even if id is not changed
var memoryStream = new MemoryStream();
compiledShader.Bytecode.WriteTo(memoryStream);
memoryStream.Position = 0;
database.ObjectDatabase.Write(memoryStream, newBytecodeId, true);
database.AssetIndexMap[compiledUrl] = newBytecodeId;
// Save bytecode Id to the database cache as well
memoryStream.SetLength(0);
memoryStream.Write((byte[])newBytecodeId, 0, ObjectId.HashSize);
memoryStream.Position = 0;
database.ObjectDatabase.Write(memoryStream, mixinObjectId, true);
if (!bytecodes.ContainsKey(newBytecodeId))
{
log.Info("New effect compiled #{0} [{1}] (db: {2})\r\n{3}", effectCompileCount, mixinObjectId, newBytecodeId, usedParameters.ToStringDetailed());
Interlocked.Increment(ref effectCompileCount);
// Replace or add new bytecode
bytecodes[newBytecodeId] = compiledShader.Bytecode;
}
}
lock (compilingShaders)
{
compilingShaders.Remove(mixinObjectId);
}
return compiledShader;
}
示例3: LockProcessAndAddDataToLogger
/// <summary>
/// Lock the process and save the string.
/// </summary>
/// <param name="process">The current process.</param>
/// <param name="logger">Logger were out current process.</param>
/// <param name="isError">Is this the error output or the standard one?</param>
/// <param name="args">arguments of the process.</param>
private static void LockProcessAndAddDataToLogger(Process process, LoggerResult logger, bool isError, DataReceivedEventArgs args)
{
if (!string.IsNullOrEmpty(args.Data))
{
lock (process)
{
if (isError)
logger.Error(args.Data);
else
logger.Info(args.Data);
}
}
}
示例4: TestCallerInfo
public void TestCallerInfo()
{
var log = new LoggerResult();
// Use the caller information
log.Info("#0", CallerInfo.Get());
log.Info("#{0}", 1, CallerInfo.Get());
Assert.That(log.Messages.Count, Is.EqualTo(2));
Assert.That(((LogMessage)log.Messages[0]).CallerInfo, Is.Not.Null);
Assert.That(((LogMessage)log.Messages[0]).CallerInfo.FilePath, Is.StringContaining("TestLogger"));
Assert.That(((LogMessage)log.Messages[0]).CallerInfo.LineNumber, Is.GreaterThan(0));
Assert.That(((LogMessage)log.Messages[1]).CallerInfo, Is.Not.Null);
Assert.That(((LogMessage)log.Messages[1]).CallerInfo.LineNumber, Is.EqualTo(((LogMessage)log.Messages[0]).CallerInfo.LineNumber + 1));
}