草庐IT

android - Xamarin Log.v 相当于打印到控制台/logcat

coder 2023-12-27 原文

如何在 Xamarin 中使用 Log.v() 或等效项?我正在 Xamarin/Visual Studio 中开发一个 Android 应用程序,我想输出一些日志,例如就像 Android 中的 Log.v() 一样,我可以通过 adb shell logcat 获取它。当我尝试使用

   Log.v("test");

Visual Studio 声明:“日志”无法访问其保护级别。

Debug.WriteLine("");只写入 VS 日志,不会出现在 Logcat 中。

有什么建议吗?谢谢!

更新:添加了代码。

        using Xamarin.Forms;
        using System;
        using System.Diagnostics;
        using Android.Util.Log;

        namespace xf2
        {
            public partial class xf2Page : ContentPage
            {
                public xf2Page()
                {
                    InitializeComponent();
                    Log.Debug("SO", "Debug");
                    Log.Error("SO", "Error");
                    Log.Info("SO", "Info");
                    Log.Warn("SO", "Warn");
                }
            }
        }

最佳答案

Log 位于 Android.Util 命名空间中,并且是特定于平台的。

using Android.Util;

然后就可以使用Log输出到logcat了:

Log.Verbose("SO", "Verbose");
Log.Debug("SO", "Debug");
Log.Error("SO", "Error");
Log.Info("SO", "Info");
Log.Warn("SO", "Warn");

要从基于表单的 PCL/NStd 库调用 Log,您可以使用依赖服务:

回复:https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals/dependency-service/

依赖服务接口(interface):

public interface ILogInterface
{
    void Verbose(string TAG, string message);
    void Info(string TAG, string message);
    void Debug(string TAG, string message);
    void Error(string TAG, string message);
    void Warn(string TAG, string message);
}

Android 实现:

public class LogImplementation : ILogInterface
{
    public void Debug(string TAG, string message)
    {
        L.Debug(TAG, message);
    }

    public void Error(string TAG, string message)
    {
        L.Error(TAG, message);
    }

    public void Info(string TAG, string message)
    {
        L.Info(TAG, message);
    }

    public void Verbose(string TAG, string message)
    {
        L.Verbose(TAG, message);
    }

    public void Warn(string TAG, string message)
    {
        L.Warn(TAG, message);
    }
}

注意:应用程序集级依赖发现属性:

[assembly: Xamarin.Forms.Dependency(typeof(ILogInterface))]

表单用法:

var Log = DependencyService.Get<ILogInterface>();
Log.Debug("SO", "record someting in logcat");

关于android - Xamarin Log.v 相当于打印到控制台/logcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44540137/

有关android - Xamarin Log.v 相当于打印到控制台/logcat的更多相关文章

  1. Ruby Readline 在向上箭头上使控制台崩溃 - 2

    当我在Rails控制台中按向上或向左箭头时,出现此错误:irb(main):001:0>/Users/me/.rvm/gems/ruby-2.0.0-p247/gems/rb-readline-0.4.2/lib/rbreadline.rb:4269:in`blockin_rl_dispatch_subseq':invalidbytesequenceinUTF-8(ArgumentError)我使用rvm来管理我的ruby​​安装。我正在使用=>ruby-2.0.0-p247[x86_64]我使用bundle来管理我的gem,并且我有rb-readline(0.4.2)(人们推荐的最少

  2. ruby-on-rails - 带 Spring 锁的 Rails 4 控制台 - 2

    我正在使用Ruby2.1.1和Rails4.1.0.rc1。当执行railsc时,它被锁定了。使用Ctrl-C停止,我得到以下错误日志:~/.rvm/gems/ruby-2.1.1/gems/spring-1.1.2/lib/spring/client/run.rb:47:in`gets':Interruptfrom~/.rvm/gems/ruby-2.1.1/gems/spring-1.1.2/lib/spring/client/run.rb:47:in`verify_server_version'from~/.rvm/gems/ruby-2.1.1/gems/spring-1.1.

  3. ruby-on-rails - 如何在我的 Rails 应用程序 View 中打印 ruby​​ 变量的内容? - 2

    我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby​​中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R

  4. ruby-on-rails - openshift 上的 rails 控制台 - 2

    我将我的Rails应用程序部署到OpenShift,它运行良好,但我无法在生产服务器上运行“Rails控制台”。它给了我这个错误。我该如何解决这个问题?我尝试更新ruby​​gems,但它也给出了权限被拒绝的错误,我也无法做到。railsc错误:Warning:You'reusingRubygems1.8.24withSpring.UpgradetoatleastRubygems2.1.0andrun`gempristine--all`forbetterstartupperformance./opt/rh/ruby193/root/usr/share/rubygems/rubygems

  5. Python 相当于 Perl/Ruby ||= - 2

    这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Pythonconditionalassignmentoperator对于这样一个简单的问题表示歉意,但是谷歌搜索||=并不是很有帮助;)Python中是否有与Ruby和Perl中的||=语句等效的语句?例如:foo="hey"foo||="what"#assignfooifit'sundefined#fooisstill"hey"bar||="yeah"#baris"yeah"另外,类似这样的东西的通用术语是什么?条件分配是我的第一个猜测,但Wikipediapage跟我想的不太一样。

  6. java - 什么相当于 ruby​​ 的 rack 或 python 的 Java wsgi? - 2

    什么是ruby​​的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht

  7. 安卓apk修改(Android反编译apk) - 2

    最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路

  8. java - Ruby 相当于 Java 的 Collections.unmodifiableList 和 Collections.unmodifiableMap - 2

    Java的Collections.unmodifiableList和Collections.unmodifiableMap在Ruby标准API中是否有等价物? 最佳答案 使用freeze应用程序接口(interface):Preventsfurthermodificationstoobj.ARuntimeErrorwillberaisedifmodificationisattempted.Thereisnowaytounfreezeafrozenobject.SeealsoObject#frozen?.Thismethodretur

  9. ruby-on-rails - 在 Rails 控制台中使用 asset_path - 2

    在我的Character模型中,我添加了:字符.rbbefore_savedoself.profile_picture_url=asset_path('icon.png')end但是,对于数据库中已存在的所有角色,它们的profile_picture_url为nil。因此,我想进入控制台并遍历所有这些并进行设置。在我试过的控制台中:Character.find_eachdo|c|c.profile_picture_url=asset_path('icon.png')end但这给出了错误:NoMethodError:undefinedmethod`asset_path'formain:O

  10. ruby-on-rails - 带有 Pry 的 Rails 控制台 - 2

    当我进入Rails控制台时,我已将pry设置为加载代替irb。我找不到该页面或不记得如何将其恢复为默认行为,因为它似乎干扰了我的Rubymine调试器。有什么建议吗? 最佳答案 我刚发现问题,pry-railsgem。忘记了它的目的是让“railsconsole”打开pry。 关于ruby-on-rails-带有Pry的Rails控制台,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/question

随机推荐