I have a helper method that accepts parameters with generic types. This method can throw exceptions, which I log in order to debug later. Some objects have ids, some have names, etc., that would be useful to know when trying to debug. How can I log this information in a useful way?
How to identify generic objects in exception logs?
186 views Asked by Jason At
2
There are 2 answers
0
Grax32
On
This function returns a C# style type name (something like List<String> or List<Dictionary<Int32,String>>) from a type.
public static string FancyTypeName(Type type)
{
var typeName = type.Name.Split('`')[0];
if (type.IsGenericType)
{
typeName += string.Format("<{0}>", string.Join(",",
type.GetGenericArguments().Select(v => FancyTypeName(v)).ToArray())
);
}
return typeName;
}
Related Questions in C#
- How to call a C language function from x86 assembly code?
- What does: "char *argv[]" mean?
- User input sanitization program, which takes a specific amount of arguments and passes the execution to a bash script
- How to crop a BMP image in half using C
- How can I get the difference in minutes between two dates and hours?
- Why will this code compile although it defines two variables with the same name?
- Compiling eBPF program in Docker fails due to missing '__u64' type
- Why can't I use the file pointer after the first read attempt fails?
- #include Header files in C with definition too
- OpenCV2 on CLion
- What is causing the store latency in this program?
- How to refer to the filepath of test data in test sourcecode?
- 9 Digit Addresses in Hexadecimal System in MacOS
- My server TCP doesn't receive messages from the client in C
- Printing the characters obtained from the array s using printf?
Related Questions in GENERICS
- Go: "embedded type cannot be a type parameter"
- In Rust, how to inspect values captured by a closure?
- How to declare abstract class static fields in Python?
- Default type parameters on Rust structs: is it possible to provide a default type containing a lifetime?
- What line of code do I change to avoid duplication in a linked list?
- phpstan - return a generic
- No exact matches in reference to static method 'buildExpression'
- How to create a string literal based on generic character type in c++20?
- How to write a reusable DB transaction wrapper?
- Typescript generic initially infers then is set
- How does instanceof with generics work in Java despite type erasure?
- How to use generic classes with fields of another generic class of the same generic type?
- Getting List<T> from object[] in generic method
- How to call a method on a generic type from inside the generic class?
- Is there a way to use static member as an interface in dart?
Related Questions in LOGGING
- ModuleNotFoundError: No module named 'src' while importing logging
- How to get domains in Shadowsocks server log with Shadowsocks Android
- How to enable log to console Cosmos Client SDK requests
- pino-pretty logging special characters as literal
- unable to serialize JSON type logs In fluentd(logging-operator)
- How to configure different loggers separately in structlog?
- detect catalina.out log path from a running tomcat on non-Windows
- apache2 rotatelogs creates log file but its empty when deployed to azure web app
- Ubuntu:24.04 Container generating excessive logs
- Transform Load pipeline for a logs system: Apache Airflow or Kafka Connect?
- Deisred log is not rotating
- Purpose of setting debug="false" in log4j at configuration level
- RobotFramework hangs after xx lines of log
- logging in multiprocess writes to same log
- Masking in logback.xml with all request and responses
Related Questions in CUSTOM-EXCEPTIONS
- How can we create custom class of TextView with custom font in kotlin?
- C#: should I throw an ArgumentException or NotSupportedException when an argument type is not supported?
- Custom exception hierarchy in Scala
- What arguments does the built-in Exception class require?
- Creating exceptions that are co-operative
- Can I construct a java.lang.StackTraceElement that references a non-Java-file?
- Updating Message in CustomException
- Can i define methods in exception classes other than __init__ in Python?
- Generate a specific HResult value of Exception that must be caught in COM
- Java Throwing exception with parameters (Exception e, String... errs)
- How to display my own FileNotFoundException message
- Java- Issue with try-catch exception inside custom exception
- Spring boot custom exception not getting printed in logs
- Getting an error when throwing a custom exception from a property
- How do I send a custom parameter to a custom exception in Laravel?
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Regardles if it is a generic method or not, unless your object is null, you can log the type with
myObject.GetType().ToString()EDIT:
If you would like to read more information from the object then you can read object properties like this:
This should work without any problems for primitives. For Objects it depends on how the ToString method is implemented. Also note that it will not read recursively, just the direct members of the class.