Bagikan melalui


Logger Kelas

Definisi

Objek Pencatat digunakan untuk mencatat pesan untuk sistem atau komponen aplikasi tertentu.

[Android.Runtime.Register("java/util/logging/Logger", DoNotGenerateAcw=true)]
public class Logger : Java.Lang.Object
[<Android.Runtime.Register("java/util/logging/Logger", DoNotGenerateAcw=true)>]
type Logger = class
    inherit Object
Warisan
Logger
Atribut

Keterangan

Objek Pencatat digunakan untuk mencatat pesan untuk sistem atau komponen aplikasi tertentu. Pencatat biasanya diberi nama, menggunakan namespace hierarkis yang dipisahkan titik. Nama pencatat dapat berupa string sewenang-wenang, tetapi biasanya harus didasarkan pada nama paket atau nama kelas komponen yang dicatat, seperti java.net atau javax.swing. Selain itu dimungkinkan untuk membuat Pencatat "anonim" yang tidak disimpan di namespace logger.

Objek pencatat dapat diperoleh dengan panggilan pada salah satu metode pabrik getLogger. Ini akan membuat Pencatat baru atau mengembalikan Pencatat yang ada yang sesuai. Penting untuk dicatat bahwa Pencatat yang dikembalikan oleh salah getLogger satu metode pabrik dapat menjadi sampah yang dikumpulkan kapan saja jika referensi yang kuat ke Pencatat tidak disimpan.

Pesan pengelogan akan diteruskan ke objek Handler terdaftar, yang dapat meneruskan pesan ke berbagai tujuan, termasuk konsol, file, log OS, dll.

Setiap Pencatat melacak Pencatat "induk", yang merupakan nenek moyang terdekat yang ada di namespace Logger.

Setiap Pencatat memiliki "Level" yang terkait dengannya. Ini mencerminkan Tingkat minimum yang dipedulikan pencatat ini. Jika tingkat Pencatat diatur ke null, maka tingkat efektifnya diwariskan dari induknya, yang pada gilirannya dapat memperolehnya secara rekursif dari induknya, dan seterusnya di atas pohon.

Tingkat log dapat dikonfigurasi berdasarkan properti dari file konfigurasi pengelogan, seperti yang dijelaskan dalam deskripsi kelas LogManager. Namun mungkin juga diubah secara dinamis oleh panggilan pada metode Logger.setLevel. Jika tingkat pencatat diubah, perubahan juga dapat memengaruhi pencatat anak, karena setiap pencatat anak yang memiliki null tingkatnya akan mewarisi tingkat efektifnya dari induknya.

Pada setiap panggilan pengelogan, Pencatat awalnya melakukan pemeriksaan murah tingkat permintaan (misalnya, SEVERE atau FINE) terhadap tingkat log yang efektif dari pencatat. Jika tingkat permintaan lebih rendah dari tingkat log, panggilan pengelogan akan segera kembali.

Setelah melewati pengujian awal ini (murah), Pencatat akan mengalokasikan LogRecord untuk menjelaskan pesan pengelogan. Kemudian akan memanggil Filter (jika ada) untuk melakukan pemeriksaan yang lebih rinci tentang apakah rekaman harus diterbitkan. Jika berhasil, maka akan menerbitkan LogRecord ke Handler output-nya. Secara default, pencatat juga menerbitkan ke Handler induknya, secara rekursif ke atas pohon.

Setiap Pencatat mungkin memiliki yang ResourceBundle terkait dengannya. ResourceBundle dapat ditentukan berdasarkan nama, menggunakan #getLogger(java.lang.String, java.lang.String) metode pabrik, atau berdasarkan nilai - menggunakan #setResourceBundle(java.util.ResourceBundle) setResourceBundle metode . Bundel ini akan digunakan untuk melokalisasi pesan pengelogan. Jika Logger tidak memiliki nama bundel sumber daya atau sendiri ResourceBundle , maka logger akan mewarisi ResourceBundle nama bundel sumber daya atau dari induknya, secara rekursif ke atas pohon.

Sebagian besar metode output pencatat mengambil argumen "msg". Argumen msg ini mungkin merupakan nilai mentah atau kunci pelokalan. Selama pemformatan, jika pencatat memiliki (atau mewarisi) pelokalan ResourceBundle dan jika ResourceBundle memiliki pemetaan untuk string msg, maka string msg digantikan oleh nilai yang dilokalkan. Jika tidak, string msg asli digunakan. Biasanya, formatter menggunakan pemformatan gaya java.text.MessageFormat untuk memformat parameter, jadi misalnya string format "{0}{1}" akan memformat dua parameter sebagai string.

Sekumpulan metode secara alternatif mengambil "msgSupplier" alih-alih argumen "msg". Metode ini mengambil Supplier<String> fungsi yang dipanggil untuk membangun pesan log yang diinginkan hanya ketika pesan benar-benar akan dicatat berdasarkan tingkat log yang efektif sehingga menghilangkan konstruksi pesan yang tidak perlu. Misalnya, jika pengembang ingin mencatat status kesehatan sistem untuk diagnosis, dengan versi penerima String, kode akan terlihat seperti:

<code>

               class DiagnosisMessages {
                 static String systemHealthStatus() {
                   // collect system health information
                   ...
                 }
               }
               ...
               logger.log(Level.FINER, DiagnosisMessages.systemHealthStatus());
</code>

Dengan kode di atas, status kesehatan dikumpulkan secara tidak perlu bahkan ketika tingkat log FINER dinonaktifkan. Dengan versi penerima pemasok seperti di bawah ini, status hanya akan dikumpulkan ketika tingkat log FINER diaktifkan.

<code>

               logger.log(Level.FINER, DiagnosisMessages::systemHealthStatus);
</code>

Saat mencari ResourceBundle, pencatat akan terlebih dahulu melihat apakah bundel ditentukan menggunakan #setResourceBundle(java.util.ResourceBundle) setResourceBundle, dan kemudian hanya apakah nama bundel sumber daya ditentukan melalui #getLogger(java.lang.String, java.lang.String) getLogger metode pabrik. Jika tidak ada ResourceBundle atau tidak ada nama bundel sumber daya yang ditemukan, maka nama bundel sumber daya atau terdekat ResourceBundle akan digunakan yang diwarisi dari pohon induknya.<br> Ketika diwariskan ResourceBundle atau ditentukan melalui #setResourceBundle(java.util.ResourceBundle) setResourceBundle metode , maka itu ResourceBundle akan digunakan. Jika tidak, jika pencatat hanya memiliki atau mewarisi nama bundel sumber daya, maka nama bundel sumber daya tersebut akan dipetakan ke ResourceBundle objek, menggunakan Lokal default pada saat pengelogan. <br id="ResourceBundleMapping">Saat memetakan nama bundel sumber daya ke ResourceBundle objek, pencatat akan terlebih dahulu mencoba menggunakan loader kelas konteks java.lang.Thread#getContextClassLoader() Thread untuk memetakan nama bundel sumber daya yang ResourceBundlediberikan ke . Jika loader kelas konteks utas adalah null, ia akan mencoba loader kelas sistem java.lang.ClassLoader#getSystemClassLoader(). ResourceBundle Jika masih belum ditemukan, ia akan menggunakan pemuat kelas pemanggil #getLogger(java.lang.String, java.lang.String) getLogger pertama metode pabrik.

Pemformatan (termasuk pelokalan) adalah tanggung jawab Handler output, yang biasanya akan memanggil Formatter.

Perhatikan bahwa pemformatan tidak perlu terjadi secara sinkron. Ini mungkin tertunda sampai LogRecord benar-benar ditulis ke sink eksternal.

Metode pengelogan dikelompokkan dalam lima kategori utama: <ul><li>

Ada sekumpulan metode "log" yang mengambil tingkat log, string pesan, dan secara opsional beberapa parameter ke string pesan. <Li>

Ada sekumpulan metode "logp" (untuk "log precise") yang seperti metode "log", tetapi juga mengambil nama kelas sumber eksplisit dan nama metode. <Li>

Ada sekumpulan metode "logrb" (untuk "log dengan bundel sumber daya") yang seperti metode "logp", tetapi juga mengambil objek bundel sumber daya eksplisit untuk digunakan dalam melokalisasi pesan log. <Li>

Ada metode kenyamanan untuk melacak entri metode (metode "memasuki"), metode mengembalikan (metode "keluar"), dan melemparkan pengecualian (metode "melempar"). <Li>

Akhirnya, ada serangkaian metode kenyamanan untuk digunakan dalam kasus yang sangat sederhana, ketika pengembang hanya ingin mencatat string sederhana pada tingkat log tertentu. Metode ini dinamai sesuai dengan nama Tingkat standar ("parah", "peringatan", "info", dll.) dan mengambil satu argumen, string pesan. </Ul>

Untuk metode yang tidak mengambil nama sumber dan nama metode eksplisit, kerangka kerja Pengelogan akan melakukan "upaya terbaik" untuk menentukan kelas dan metode mana yang dipanggil ke dalam metode pengelogan. Namun, penting untuk disadari bahwa informasi yang disimpulkan secara otomatis ini mungkin hanya perkiraan (atau bahkan mungkin cukup salah!). Komputer virtual diizinkan untuk melakukan pengoptimalan ekstensif ketika JITing dan dapat sepenuhnya menghapus bingkai tumpukan, sehingga tidak mungkin untuk menemukan kelas dan metode panggilan dengan andal.

Semua metode pada Logger aman multi-utas.

<b>Informasi Subkelas:</b> Perhatikan bahwa kelas LogManager dapat memberikan implementasinya sendiri dari Pencatat bernama untuk titik apa pun di namespace layanan. Oleh karena itu, setiap subkelas Logger (kecuali jika diimplementasikan bersama dengan kelas LogManager baru) harus berhati-hati untuk mendapatkan instans Logger dari kelas LogManager dan harus mendelegasikan operasi seperti "isLoggable" dan "log(LogRecord)" ke instans tersebut. Perhatikan bahwa untuk mencegat semua output pengelogan, subkelas hanya perlu mengambil alih metode log (LogRecord). Semua metode pengelogan lainnya diimplementasikan sebagai panggilan pada metode log (LogRecord) ini.

Ditambahkan dalam 1.4.

Dokumentasi Java untuk java.util.logging.Logger.

Bagian halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Proyek Sumber Terbuka Android dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Atribusi Creative Commons 2.5.

Konstruktor

Logger(IntPtr, JniHandleOwnership)

Konstruktor yang digunakan saat membuat representasi terkelola objek JNI; dipanggil oleh runtime.

Logger(String, String)

Metode yang dilindungi untuk membuat pencatat untuk subsistem bernama.

Bidang

GlobalLoggerName

GLOBAL_LOGGER_NAME adalah nama untuk pencatat global.

Properti

AnonymousLogger

Buat Pencatat anonim.

Class

Mengembalikan kelas runtime dari .Object

(Diperoleh dari Object)
Filter

Dapatkan filter saat ini untuk Pencatat ini. -or- Atur filter untuk mengontrol output pada Pencatat ini.

Global

Mengembalikan objek pencatat global dengan nama Pencatat.

Handle

Handel ke instans Android yang mendasar.

(Diperoleh dari Object)
JniIdentityHashCode

Objek Pencatat digunakan untuk mencatat pesan untuk sistem atau komponen aplikasi tertentu.

(Diperoleh dari Object)
JniPeerMembers

Objek Pencatat digunakan untuk mencatat pesan untuk sistem atau komponen aplikasi tertentu.

Level

Dapatkan Tingkat log yang telah ditentukan untuk Pencatat ini. -or- Atur tingkat log yang menentukan tingkat pesan mana yang akan dicatat oleh pencatat ini.

Name

Dapatkan nama untuk pencatat ini.

Parent

Kembalikan induk untuk Pencatat ini. -or- Atur induk untuk Pencatat ini.

PeerReference

Objek Pencatat digunakan untuk mencatat pesan untuk sistem atau komponen aplikasi tertentu.

(Diperoleh dari Object)
ResourceBundle

Ambil bundel sumber daya pelokalan untuk pencatat ini. -or- Mengatur bundel sumber daya pada pencatat ini.

ResourceBundleName

Ambil nama bundel sumber daya pelokalan untuk pencatat ini.

ThresholdClass

API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

ThresholdType

API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

UseParentHandlers

Temukan apakah pencatat ini mengirim outputnya ke pencatat induknya atau tidak. -atau- Tentukan apakah pencatat ini harus mengirim outputnya ke Pencatat induknya atau tidak.

Metode

AddHandler(Handler)

Tambahkan Handler log untuk menerima pesan pengelogan.

Clone()

Membuat dan mengembalikan salinan objek ini.

(Diperoleh dari Object)
Config(ISupplier)

Catat pesan CONFIG, yang hanya akan dibangun jika tingkat pengelogan sedih sehingga pesan akan benar-benar dicatat.

Config(String)

Catat pesan CONFIG.

Dispose()

Objek Pencatat digunakan untuk mencatat pesan untuk sistem atau komponen aplikasi tertentu.

(Diperoleh dari Object)
Dispose(Boolean)

Objek Pencatat digunakan untuk mencatat pesan untuk sistem atau komponen aplikasi tertentu.

(Diperoleh dari Object)
Entering(String, String)

Catat entri metode.

Entering(String, String, Object)

Catat entri metode, dengan satu parameter.

Entering(String, String, Object[])

Catat entri metode, dengan array parameter.

Equals(Object)

Menunjukkan apakah beberapa objek lain "sama dengan" yang satu ini.

(Diperoleh dari Object)
Exiting(String, String)

Catat pengembalian metode.

Exiting(String, String, Object)

Catat pengembalian metode, dengan objek hasil.

Fine(ISupplier)

Catat pesan FINE, yang hanya akan dibangun jika tingkat pengelogan sedih sehingga pesan akan benar-benar dicatat.

Fine(String)

Catat pesan FINE.

Finer(ISupplier)

Catat pesan FINER, yang hanya akan dibangun jika tingkat pengelogan sedih sehingga pesan akan benar-benar dicatat.

Finer(String)

Catat pesan FINER.

Finest(ISupplier)

Catat pesan FINEST, yang hanya akan dibangun jika tingkat pengelogan sedih sehingga pesan akan benar-benar dicatat.

Finest(String)

Catat pesan FINEST.

GetAnonymousLogger(String)

Buat Pencatat anonim.

GetHandlers()

Dapatkan Handler yang terkait dengan pencatat ini.

GetHashCode()

Mengembalikan nilai kode hash untuk objek .

(Diperoleh dari Object)
GetLogger(String)

Temukan atau buat pencatat untuk subsistem bernama.

GetLogger(String, String)

Temukan atau buat pencatat untuk subsistem bernama.

Info(ISupplier)

Catat pesan INFO, yang hanya akan dibangun jika tingkat pengelogan sedih sehingga pesan akan benar-benar dicatat.

Info(String)

Catat pesan INFO.

IsLoggable(Level)

Periksa apakah pesan tingkat yang diberikan benar-benar akan dicatat oleh pencatat ini.

JavaFinalize()

Dipanggil oleh pengumpul sampah pada objek ketika pengumpulan sampah menentukan bahwa tidak ada lagi referensi ke objek.

(Diperoleh dari Object)
Log(Level, ISupplier)

Catat pesan, yang hanya akan dibangun jika tingkat pengelogan sedih sehingga pesan akan benar-benar dicatat.

Log(Level, String)

Catat pesan, tanpa argumen.

Log(Level, String, Object)

Catat pesan, dengan satu parameter objek.

Log(Level, String, Object[])

Catat pesan, dengan array argumen objek.

Log(Level, String, Throwable)

Catat pesan, dengan informasi yang dapat Dilemparkan terkait.

Log(Level, Throwable, ISupplier)

Catat pesan yang dibuat dengan malas, dengan informasi Yang Dapat Dilemparkan terkait.

Log(LogRecord)

Mencatat LogRecord.

Logp(Level, String, String, ISupplier)

Catat pesan yang dibuat dengan malas, menentukan kelas dan metode sumber, tanpa argumen.

Logp(Level, String, String, String)

Catat pesan, menentukan kelas dan metode sumber, tanpa argumen.

Logp(Level, String, String, String, Object)

Catat pesan, menentukan kelas dan metode sumber, dengan parameter objek tunggal ke pesan log.

Logp(Level, String, String, String, Object[])

Catat pesan, menentukan kelas dan metode sumber, dengan array argumen objek.

Logp(Level, String, String, String, Throwable)

Catat pesan, menentukan kelas dan metode sumber, dengan informasi yang dapat dilemparkan terkait.

Logp(Level, String, String, Throwable, ISupplier)

Catat pesan yang dibuat dengan malas, menentukan kelas dan metode sumber, dengan informasi yang dapat Dilemparkan terkait.

Logrb(Level, String, String, ResourceBundle, String, Object[])

Catat pesan, tentukan kelas sumber, metode, dan nama bundel sumber daya tanpa argumen.

Logrb(Level, String, String, ResourceBundle, String, Throwable)

Catat pesan, tentukan kelas sumber, metode, dan bundel sumber daya, dengan informasi Yang Dapat Dilemparkan terkait.

Logrb(Level, String, String, String, String)

Catat pesan, tentukan kelas sumber, metode, dan nama bundel sumber daya tanpa argumen.

Logrb(Level, String, String, String, String, Object)

Catat pesan, tentukan kelas sumber, metode, dan nama bundel sumber daya, dengan parameter objek tunggal ke pesan log.

Logrb(Level, String, String, String, String, Object[])

Catat pesan, tentukan kelas sumber, metode, dan nama bundel sumber daya, dengan array argumen objek.

Logrb(Level, String, String, String, String, Throwable)

Catat pesan, menentukan kelas sumber, metode, dan nama bundel sumber daya, dengan informasi yang dapat dilemparkan terkait.

Notify()

Membangunkan satu utas yang menunggu monitor objek ini.

(Diperoleh dari Object)
NotifyAll()

Membangunkan semua utas yang menunggu monitor objek ini.

(Diperoleh dari Object)
RemoveHandler(Handler)

Menghapus Handler log.

SetHandle(IntPtr, JniHandleOwnership)

Handle Mengatur properti.

(Diperoleh dari Object)
Severe(ISupplier)

Catat pesan SEVERE, yang hanya akan dibangun jika tingkat pengelogan sedih sehingga pesan akan benar-benar dicatat.

Severe(String)

Catat pesan SEVERE.

Throwing(String, String, Throwable)

Log melemparkan pengecualian.

ToArray<T>()

Objek Pencatat digunakan untuk mencatat pesan untuk sistem atau komponen aplikasi tertentu.

(Diperoleh dari Object)
ToString()

Mengembalikan representasi string objek.

(Diperoleh dari Object)
UnregisterFromRuntime()

Objek Pencatat digunakan untuk mencatat pesan untuk sistem atau komponen aplikasi tertentu.

(Diperoleh dari Object)
Wait()

Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <diberitahu></em> atau <em>terganggu</em>.

(Diperoleh dari Object)
Wait(Int64)

Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah real time telah berlalu.

(Diperoleh dari Object)
Wait(Int64, Int32)

Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah real time telah berlalu.

(Diperoleh dari Object)
Warning(ISupplier)

Catat pesan PERINGATAN, yang hanya akan dibangun jika tingkat pengelogan sedih sehingga pesan akan benar-benar dicatat.

Warning(String)

Catat pesan PERINGATAN.

Implementasi Antarmuka Eksplisit

IJavaPeerable.Disposed()

Objek Pencatat digunakan untuk mencatat pesan untuk sistem atau komponen aplikasi tertentu.

(Diperoleh dari Object)
IJavaPeerable.DisposeUnlessReferenced()

Objek Pencatat digunakan untuk mencatat pesan untuk sistem atau komponen aplikasi tertentu.

(Diperoleh dari Object)
IJavaPeerable.Finalized()

Objek Pencatat digunakan untuk mencatat pesan untuk sistem atau komponen aplikasi tertentu.

(Diperoleh dari Object)
IJavaPeerable.JniManagedPeerState

Objek Pencatat digunakan untuk mencatat pesan untuk sistem atau komponen aplikasi tertentu.

(Diperoleh dari Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Objek Pencatat digunakan untuk mencatat pesan untuk sistem atau komponen aplikasi tertentu.

(Diperoleh dari Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Objek Pencatat digunakan untuk mencatat pesan untuk sistem atau komponen aplikasi tertentu.

(Diperoleh dari Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Objek Pencatat digunakan untuk mencatat pesan untuk sistem atau komponen aplikasi tertentu.

(Diperoleh dari Object)

Metode Ekstensi

JavaCast<TResult>(IJavaObject)

Melakukan konversi jenis yang diperiksa runtime Bahasa Umum Android.

JavaCast<TResult>(IJavaObject)

Objek Pencatat digunakan untuk mencatat pesan untuk sistem atau komponen aplikasi tertentu.

GetJniTypeName(IJavaPeerable)

Objek Pencatat digunakan untuk mencatat pesan untuk sistem atau komponen aplikasi tertentu.

Berlaku untuk