1 // 2 // Copyright (c) 2010-2018 Antmicro 3 // Copyright (c) 2011-2015 Realtime Embedded 4 // 5 // This file is licensed under the MIT License. 6 // Full license text is available in 'licenses/MIT.txt'. 7 // 8 using System; 9 using AntShell.Commands; 10 using Antmicro.Renode.UserInterface.Tokenizer; 11 using Antmicro.Renode.Logging; 12 13 namespace Antmicro.Renode.UserInterface.Commands 14 { 15 public class LogCommand : AutoLoadCommand 16 { PrintHelp(ICommandInteraction writer)17 public override void PrintHelp(ICommandInteraction writer) 18 { 19 base.PrintHelp(writer); 20 writer.WriteLine(); 21 writer.WriteLine("Usage:"); 22 writer.WriteLine(String.Format("{0} <<message to log>> <<log level>>", Name)); 23 } 24 [Runnable] Run(ICommandInteraction writer, StringToken message)25 public void Run(ICommandInteraction writer, StringToken message) 26 { 27 InnerLog(LogLevel.Info, message.Value); 28 } 29 30 [Runnable] Run(ICommandInteraction writer, StringToken message, [Values( -1L, 0L, 1L, 2L, 3L)] DecimalIntegerToken level)31 public void Run(ICommandInteraction writer, StringToken message, [Values( -1L, 0L, 1L, 2L, 3L)] DecimalIntegerToken level) 32 { 33 InnerLog((LogLevel)(int)level.Value, message.Value); 34 } 35 36 [Runnable] Run(ICommandInteraction writer, StringToken message, [Values( R, R, R, R, R)] StringToken level)37 public void Run(ICommandInteraction writer, StringToken message, [Values( "Noisy", "Debug", "Info", "Warning", "Error")] StringToken level) 38 { 39 InnerLog(LogLevel.Parse(level.Value), message.Value); 40 } 41 InnerLog(LogLevel logLevel, string message)42 private void InnerLog(LogLevel logLevel, string message) 43 { 44 Logger.LogAs(monitor, logLevel, "Script: " + message); 45 } 46 LogCommand(Monitor monitor)47 public LogCommand(Monitor monitor) 48 : base(monitor, "log", "logs messages.") 49 { 50 } 51 } 52 } 53 54